Merge pull request !1939 from mindspore_ding/code_sync_0705tags/v1.3.0^0
| @@ -25,9 +25,9 @@ | |||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| // Current version is 1.0.0 | |||||
| // Current version is 1.1.0 | |||||
| #define ACL_MAJOR_VERSION 1 | #define ACL_MAJOR_VERSION 1 | ||||
| #define ACL_MINOR_VERSION 0 | |||||
| #define ACL_MINOR_VERSION 1 | |||||
| #define ACL_PATCH_VERSION 0 | #define ACL_PATCH_VERSION 0 | ||||
| /** | /** | ||||
| @@ -158,6 +158,20 @@ enum acldvppJpegFormat { | |||||
| ACL_JPEG_CSS_UNKNOWN = 1000 | ACL_JPEG_CSS_UNKNOWN = 1000 | ||||
| }; | }; | ||||
| enum acldvppChannelDescParamType { ACL_DVPP_CSC_MATRIX_UINT32 = 0 }; | |||||
| enum aclvdecChannelDescParamType { ACL_VDEC_CSC_MATRIX_UINT32 = 0 }; | |||||
| // Csc Matrix can be used both for acldvppChannelDescParamType and aclvdecChannelDescParamType | |||||
| enum acldvppCscMatrix { | |||||
| ACL_DVPP_CSC_MATRIX_BT601_WIDE = 0, | |||||
| ACL_DVPP_CSC_MATRIX_BT601_NARROW, | |||||
| ACL_DVPP_CSC_MATRIX_BT709_WIDE, | |||||
| ACL_DVPP_CSC_MATRIX_BT709_NARROW, | |||||
| ACL_DVPP_CSC_MATRIX_BT2020_WIDE, | |||||
| ACL_DVPP_CSC_MATRIX_BT2020_NARROW | |||||
| }; | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| * @brief alloc device memory for dvpp. | * @brief alloc device memory for dvpp. | ||||
| @@ -2560,7 +2574,90 @@ ACL_FUNC_VISIBILITY aclError acldvppVpcBatchCropResizeMakeBorderAsync( | |||||
| acldvppChannelDesc *channelDesc, acldvppBatchPicDesc *srcBatchPicDescs, uint32_t *roiNums, uint32_t size, | acldvppChannelDesc *channelDesc, acldvppBatchPicDesc *srcBatchPicDescs, uint32_t *roiNums, uint32_t size, | ||||
| acldvppBatchPicDesc *dstBatchPicDescs, acldvppRoiConfig *cropAreas[], acldvppBorderConfig *borderCfgs[], | acldvppBatchPicDesc *dstBatchPicDescs, acldvppRoiConfig *cropAreas[], acldvppBorderConfig *borderCfgs[], | ||||
| acldvppResizeConfig *resizeConfig, aclrtStream stream); | acldvppResizeConfig *resizeConfig, aclrtStream stream); | ||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief set param for dvpp channel desc | |||||
| * | |||||
| * @par Function | |||||
| * set attribution in dvpp channelDesc for specified type | |||||
| * | |||||
| * @param channelDesc [OUT] the channel destruction | |||||
| * @param paramType [IN] specified param type | |||||
| * @param length [IN] mem length of param | |||||
| * @param param [IN] pointer to param | |||||
| * | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | |||||
| * @retval OtherValues Failure | |||||
| * | |||||
| * @see acldvppGetChannelDescParam | acldvppCreateChannelDesc | acldvppDestroyChannelDesc | |||||
| */ | |||||
| ACL_FUNC_VISIBILITY aclError acldvppSetChannelDescParam(acldvppChannelDesc *channelDesc, | |||||
| acldvppChannelDescParamType paramType, size_t length, | |||||
| const void *param); | |||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief get param of dvpp channel desc | |||||
| * | |||||
| * @par Function | |||||
| * get attribution value in dvpp channelDesc for specified type | |||||
| * | |||||
| * @param channelDesc [IN] the channel destruction | |||||
| * @param paramType [IN] specified param type | |||||
| * @param length [IN] mem length allocated for output param | |||||
| * @param paramRetSize [OUT] mem length of output param | |||||
| * @param param [OUT] pointer to output param | |||||
| * | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | |||||
| * @retval OtherValues Failure | |||||
| * | |||||
| * @see acldvppSetChannelDescParam | acldvppCreateChannelDesc | acldvppDestroyChannelDesc | |||||
| */ | |||||
| ACL_FUNC_VISIBILITY aclError acldvppGetChannelDescParam(const acldvppChannelDesc *channelDesc, | |||||
| acldvppChannelDescParamType paramType, size_t length, | |||||
| size_t *paramRetSize, void *param); | |||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief set param for vdec channel desc | |||||
| * | |||||
| * @par Function | |||||
| * set attribution in channelDesc for specified type | |||||
| * | |||||
| * @param channelDesc [OUT] the vdec channel destruction | |||||
| * @param paramType [IN] specified param type | |||||
| * @param length [IN] mem length of param | |||||
| * @param param [IN] pointer to param | |||||
| * | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | |||||
| * @retval OtherValues Failure | |||||
| * | |||||
| * @see aclvdecGetChannelDescParam | aclvdecCreateChannelDesc | aclvdecDestroyChannelDesc | |||||
| */ | |||||
| ACL_FUNC_VISIBILITY aclError aclvdecSetChannelDescParam(aclvdecChannelDesc *channelDesc, | |||||
| aclvdecChannelDescParamType paramType, size_t length, | |||||
| const void *param); | |||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief get param of vdec channel desc | |||||
| * | |||||
| * @par Function | |||||
| * get attribution value in channelDesc for specified type | |||||
| * | |||||
| * @param channelDesc [IN] the vdec channel destruction | |||||
| * @param paramType [IN] specified param type | |||||
| * @param length [IN] mem length allocated for output param | |||||
| * @param paramRetSize [OUT] mem length of output param | |||||
| * @param param [OUT] pointer to output param | |||||
| * | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | |||||
| * @retval OtherValues Failure | |||||
| * | |||||
| * @see aclvdecSetChannelDescParam | aclvdecCreateChannelDesc | aclvdecDestroyChannelDesc | |||||
| */ | |||||
| ACL_FUNC_VISIBILITY aclError aclvdecGetChannelDescParam(const aclvdecChannelDesc *channelDesc, | |||||
| aclvdecChannelDescParamType paramType, size_t length, | |||||
| size_t *paramRetSize, void *param); | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -1154,18 +1154,17 @@ REG_OP(EditDistance) | |||||
| .OP_END_FACTORY_REG(EditDistance) | .OP_END_FACTORY_REG(EditDistance) | ||||
| /** | /** | ||||
| * @brief sort_v2. | |||||
| * @brief sort the input tensor without returning the value of index. | |||||
| * @par Inputs: | * @par Inputs: | ||||
| * @li x: An ND tensor of type float16. | |||||
| * x: An ND tensor of type float16. | |||||
| * @par Attributes: | * @par Attributes: | ||||
| * @li axis: An optional int. The dimension to sort along. This value defaults to -1. | * @li axis: An optional int. The dimension to sort along. This value defaults to -1. | ||||
| * @li descending: An optional bool. Controls the sorting order (ascending or descending). This value defaults to False. | * @li descending: An optional bool. Controls the sorting order (ascending or descending). This value defaults to False. | ||||
| * @par Outputs: | * @par Outputs: | ||||
| * @li y: An ND tensor of type float16. | |||||
| * y: An ND tensor of type float16. | |||||
| * @attention Constraints: | * @attention Constraints: | ||||
| * @li Axis should select the last dim. | * @li Axis should select the last dim. | ||||
| @@ -624,9 +624,9 @@ REG_OP(Log1p) | |||||
| *@attention Constraints: | *@attention Constraints: | ||||
| *@li x2: The input data does not support 0 | *@li x2: The input data does not support 0 | ||||
| *@li When NUM exceeds 2048 , the accuracy of operator cannot guarantee the | |||||
| *@li When NUM exceeds 2048 , the accuracy of operator cannot guarantee the | |||||
| *requirement of double thousandths in the mini form | *requirement of double thousandths in the mini form | ||||
| *@li Due to different architectures, the calculation results of this operator | |||||
| *@li Due to different architectures, the calculation results of this operator | |||||
| *on NPU and CPU may be inconsistent | *on NPU and CPU may be inconsistent | ||||
| *@li If shape is expressed as (D1,D2... ,Dn), then D1*D2... *DN<=1000000,n<=8 | *@li If shape is expressed as (D1,D2... ,Dn), then D1*D2... *DN<=1000000,n<=8 | ||||
| @@ -2066,9 +2066,9 @@ REG_OP(FloorDiv) | |||||
| *@attention Constraints: | *@attention Constraints: | ||||
| *@li x2: The input data does not support 0 | *@li x2: The input data does not support 0 | ||||
| *@li When NUM exceeds 2048 , the accuracy of operator cannot guarantee the | |||||
| *@li When NUM exceeds 2048 , the accuracy of operator cannot guarantee the | |||||
| *requirement of double thousandths in the mini form | *requirement of double thousandths in the mini form | ||||
| *@li Due to different architectures, the calculation results of this operator | |||||
| *@li Due to different architectures, the calculation results of this operator | |||||
| *on NPU and CPU may be inconsistent | *on NPU and CPU may be inconsistent | ||||
| *@li If shape is expressed as (D1,D2... ,Dn), then D1*D2... *DN<=1000000,n<=8 | *@li If shape is expressed as (D1,D2... ,Dn), then D1*D2... *DN<=1000000,n<=8 | ||||
| @@ -2200,9 +2200,9 @@ REG_OP(Tan) | |||||
| *@attention Constraints: | *@attention Constraints: | ||||
| *@li x2: The input data does not support 0 | *@li x2: The input data does not support 0 | ||||
| *@li When NUM exceeds 2048 , the accuracy of operator cannot guarantee the | |||||
| *@li When NUM exceeds 2048 , the accuracy of operator cannot guarantee the | |||||
| *requirement of double thousandths in the mini form | *requirement of double thousandths in the mini form | ||||
| *@li Due to different architectures, the calculation results of this operator | |||||
| *@li Due to different architectures, the calculation results of this operator | |||||
| *on NPU and CPU may be inconsistent | *on NPU and CPU may be inconsistent | ||||
| *@li If shape is expressed as (D1,D2... ,Dn), then D1*D2... *DN<=1000000,n<=8 | *@li If shape is expressed as (D1,D2... ,Dn), then D1*D2... *DN<=1000000,n<=8 | ||||
| @@ -3395,7 +3395,7 @@ REG_OP(TensorRedirect) | |||||
| * multiply the result by the scalar value and add it to tensor x1 | * multiply the result by the scalar value and add it to tensor x1 | ||||
| * @par Inputs: | * @par Inputs: | ||||
| * Three inputs, including: | |||||
| * Four inputs, including: | |||||
| * @li input_data: A mutable input Tensor. Must be one of the following types: | * @li input_data: A mutable input Tensor. Must be one of the following types: | ||||
| * float16, float32. | * float16, float32. | ||||
| * @li x1: A mutable input Tensor of the same type as x1. | * @li x1: A mutable input Tensor of the same type as x1. | ||||
| @@ -3404,7 +3404,7 @@ REG_OP(TensorRedirect) | |||||
| * float16, float32, int32. \n | * float16, float32, int32. \n | ||||
| * @par Outputs: | * @par Outputs: | ||||
| * @li y: A mutable Tensor. Has the same type as "x1". \n | |||||
| * y: A mutable Tensor. Has the same type as "x1". \n | |||||
| * @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
| * Compatible with the Pytorch operator Addcdiv. | * Compatible with the Pytorch operator Addcdiv. | ||||
| @@ -3418,12 +3418,12 @@ REG_OP(Addcdiv) | |||||
| .OP_END_FACTORY_REG(Addcdiv) | .OP_END_FACTORY_REG(Addcdiv) | ||||
| /** | /** | ||||
| * @brief Performs the element-wise multiplication of tensor x2 by tensor x3, | |||||
| * multiply the result by the scalar value and add it to tensor input_data | |||||
| * @brief Performs the element-wise multiplication of tensor x2 by tensor x3, | |||||
| * multiply the result by the scalar value and add it to tensor input_data | |||||
| * @par Inputs: | * @par Inputs: | ||||
| * Three inputs, including: | |||||
| * Four inputs, including: | |||||
| * @li input_data: A mutable input Tensor. Must be one of the following types: | * @li input_data: A mutable input Tensor. Must be one of the following types: | ||||
| * float16, float32, int8, int32, uint8. | * float16, float32, int8, int32, uint8. | ||||
| * @li x1: A mutable input Tensor of the same type as x1. | * @li x1: A mutable input Tensor of the same type as x1. | ||||
| @@ -3431,7 +3431,7 @@ REG_OP(Addcdiv) | |||||
| * @li value: A tensor which includes only one element of the same type as x1. \n | * @li value: A tensor which includes only one element of the same type as x1. \n | ||||
| * @par Outputs: | * @par Outputs: | ||||
| * @li y: A mutable output Tensor. Has the same type as "x1". \n | |||||
| * y: A mutable output Tensor. Has the same type as "x1". \n | |||||
| * @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
| * Compatible with the Pytorch operator Addcmul. | * Compatible with the Pytorch operator Addcmul. | ||||
| @@ -3453,7 +3453,7 @@ REG_OP(Addcmul) | |||||
| * @li alpha: A scalar tensor of type float16, float32. \n | * @li alpha: A scalar tensor of type float16, float32. \n | ||||
| * @par Outputs: | * @par Outputs: | ||||
| * @li y: An ND tensor tensor with the same shape and type as "x1". \n | |||||
| * y: An ND tensor tensor with the same shape and type as "x1". \n | |||||
| * @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
| * Compatible with the Pytorch operator Axpy. | * Compatible with the Pytorch operator Axpy. | ||||
| @@ -3533,21 +3533,21 @@ REG_OP(TensorEqual) | |||||
| .OP_END_FACTORY_REG(TensorEqual) | .OP_END_FACTORY_REG(TensorEqual) | ||||
| /** | /** | ||||
| * @brief Element-wise min of each of the input tensors (with Numpy-style broadcasting support). | |||||
| * All inputs and outputs must have the same data type. This operator supports multidirectional | |||||
| * @brief Element-wise min of each of the input tensors (with Numpy-style broadcasting support). | |||||
| * All inputs and outputs must have the same data type. This operator supports multidirectional | |||||
| * (i.e., Numpy-style) broadcasting | * (i.e., Numpy-style) broadcasting | ||||
| * | |||||
| * @par inputs | |||||
| * | |||||
| * @par Inputs: | |||||
| * one input including: | * one input including: | ||||
| * @li x: dynamic input A Tensor. Must be one of the following types: float32, float16, double, int32, int64 | |||||
| * | |||||
| * @par output | |||||
| * x: dynamic input A Tensor. Must be one of the following types: float32, float16, double, int32, int64 | |||||
| * | |||||
| * @par Outputs: | |||||
| * one output including: | * one output including: | ||||
| * @li y:A Tensor of the same type as x | |||||
| * | |||||
| * y:A Tensor of the same type as x | |||||
| * | |||||
| */ | */ | ||||
| REG_OP(MaxN) | REG_OP(MaxN) | ||||
| .DYNAMIC_INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT, DT_FLOAT64, DT_INT32, DT_INT64})) | |||||
| .DYNAMIC_INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT, DT_FLOAT64, DT_INT32, DT_INT64})) | |||||
| .OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT, DT_FLOAT64, DT_INT32, DT_INT64})) | .OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT, DT_FLOAT64, DT_INT32, DT_INT64})) | ||||
| .OP_END_FACTORY_REG(MaxN) | .OP_END_FACTORY_REG(MaxN) | ||||
| @@ -3632,16 +3632,16 @@ REG_OP(DataCompare) | |||||
| *which Hardmax will be performed.The output tensor has the same shape and contains the Hardmax values of the | *which Hardmax will be performed.The output tensor has the same shape and contains the Hardmax values of the | ||||
| *corresponding input. | *corresponding input. | ||||
| * | * | ||||
| *@par inputs | |||||
| *@par Inputs: | |||||
| *one input including: | *one input including: | ||||
| *@li x: input A Tensor.Must be one of the following types:float32,float16 | |||||
| *x: input A Tensor.Must be one of the following types:float32,float16 | |||||
| * | * | ||||
| *@par Attributes: | *@par Attributes: | ||||
| *@li axis:A required int attribute that decides which dimension will be used to cal the hard_max | |||||
| *axis:A required int attribute that decides which dimension will be used to cal the hard_max | |||||
| * | * | ||||
| *@par output: | |||||
| *@par Outputs: | |||||
| *one output including: | *one output including: | ||||
| *@li y:A Tensor of the same type as x | |||||
| *y:A Tensor of the same type as x | |||||
| * | * | ||||
| */ | */ | ||||
| REG_OP(HardMax) | REG_OP(HardMax) | ||||
| @@ -3669,7 +3669,7 @@ REG_OP(Dot) | |||||
| .INPUT(input_y, TensorType({DT_FLOAT, DT_FLOAT16, DT_UINT8, DT_INT8, DT_INT32})) | .INPUT(input_y, TensorType({DT_FLOAT, DT_FLOAT16, DT_UINT8, DT_INT8, DT_INT32})) | ||||
| .OUTPUT(output, TensorType({DT_FLOAT, DT_FLOAT16, DT_UINT8, DT_INT8, DT_INT32})) | .OUTPUT(output, TensorType({DT_FLOAT, DT_FLOAT16, DT_UINT8, DT_INT8, DT_INT32})) | ||||
| .OP_END_FACTORY_REG(Dot) | .OP_END_FACTORY_REG(Dot) | ||||
| /** | /** | ||||
| *@brief Returns a new tensor with boolean elements representing \n | *@brief Returns a new tensor with boolean elements representing \n | ||||
| *if each element of input is “close” to the corresponding element of other \n | *if each element of input is “close” to the corresponding element of other \n | ||||
| @@ -3717,7 +3717,7 @@ REG_OP(IsClose) | |||||
| * | * | ||||
| *@attention Constraints: | *@attention Constraints: | ||||
| *@li indices: only support int32,and shape same to "updates" | *@li indices: only support int32,and shape same to "updates" | ||||
| *@li The value range of "dimension" is [-dims, dims - 1]. "dims" is the dimension length of "x". | |||||
| *@li The value range of "dimension" is [-dims, dims - 1]. "dims" is the dimension length of "x". | |||||
| *@li y:A Tensor, the type and shape is same to "var" \n | *@li y:A Tensor, the type and shape is same to "var" \n | ||||
| *@par Third-party framework compatibility | *@par Third-party framework compatibility | ||||
| @@ -3752,7 +3752,7 @@ REG_OP(ArgMaxGrad) | |||||
| *@attention Constraints: | *@attention Constraints: | ||||
| *@li indices: only support int32,and shape same to "updates" | *@li indices: only support int32,and shape same to "updates" | ||||
| *@li The value range of "dimension" is [-dims, dims - 1]. "dims" is the dimension length of "x". | |||||
| *@li The value range of "dimension" is [-dims, dims - 1]. "dims" is the dimension length of "x". | |||||
| *@li y:A Tensor, the type and shape is same to "var" \n | *@li y:A Tensor, the type and shape is same to "var" \n | ||||
| *@par Third-party framework compatibility | *@par Third-party framework compatibility | ||||
| @@ -1512,6 +1512,9 @@ REG_OP(IMGWarp) | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *map_img: A Tensor after resize. \n | *map_img: A Tensor after resize. \n | ||||
| *@par Restrictions: | |||||
| *Warning:THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
| */ | */ | ||||
| REG_OP(Remap) | REG_OP(Remap) | ||||
| .INPUT(img, TensorType({DT_UINT8, DT_FLOAT16, DT_FLOAT32})) | .INPUT(img, TensorType({DT_UINT8, DT_FLOAT16, DT_FLOAT32})) | ||||
| @@ -1848,6 +1851,9 @@ REG_OP(GridUnnormal) | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *y: Returns 4-D Tensor with the same dtype as `x`. | *y: Returns 4-D Tensor with the same dtype as `x`. | ||||
| *@par Restrictions: | |||||
| *Warning:THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
| */ | */ | ||||
| REG_OP(ImageUnfold) | REG_OP(ImageUnfold) | ||||
| .INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | .INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
| @@ -1940,5 +1946,151 @@ REG_OP(GridSampler3DGrad) | |||||
| .ATTR(align_corners, Bool, false) | .ATTR(align_corners, Bool, false) | ||||
| .OP_END_FACTORY_REG(GridSampler3DGrad) | .OP_END_FACTORY_REG(GridSampler3DGrad) | ||||
| /** | |||||
| *@brief Upsample the 3-D data with the nearest neighbor interpolation algorithm. \n | |||||
| *@par Inputs: | |||||
| *One inputs, including: | |||||
| * @li x: A 5-D input tensor [N, C, D, H, W]. Must be one of the following types: | |||||
| * float32, float64. \n | |||||
| *@par Attributes: | |||||
| *@li output_size: An optional listInt. Defaults to none. | |||||
| contain 3 elements: output_depth, output_height, output_width. The number of elements of 'output_size' | |||||
| should be the same as the rank of input 'x'. Only one of 'scales' and 'output_size' can be specified. \n | |||||
| *@li scales: An optional listFloat. Defaults to none. | |||||
| The scale array along each dimension, contain 3 elements: scale_depth, scale_height, scale_width. | |||||
| The number of elements of 'scales' should be the same as the rank of input 'x'. One of 'scales' and | |||||
| 'output_size' MUST be specified and it is an error if both are specified. \n | |||||
| *@par Outputs: | |||||
| *y: A 5-D tensor. Has the same type as input x, shape depends on x and output_size/scales. \n | |||||
| *@par Restrictions: | |||||
| *Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. \n | |||||
| */ | |||||
| REG_OP(UpsampleNearest3d) | |||||
| .INPUT(x, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .OUTPUT(y, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .ATTR(output_size, ListInt, {}) | |||||
| .ATTR(scales, ListFloat, {}) | |||||
| .OP_END_FACTORY_REG(UpsampleNearest3d) | |||||
| /** | |||||
| *@brief Upsample the 3-D data with the trilinear interpolation algorithm. \n | |||||
| *@par Inputs: | |||||
| *One inputs, including: | |||||
| * @li x: A 5-D input tensor [N, C, D, H, W]. Must be one of the following types: | |||||
| * float32, float64. \n | |||||
| *@par Attributes: | |||||
| *@li output_size: An optional listInt. Defaults to none. | |||||
| contain 3 elements: output_depth, output_height, output_width. The number of elements of 'output_size' should | |||||
| be the same as the rank of input 'x'. Only one of 'scales' and 'output_size' can be specified. \n | |||||
| *@li scales: An optional listFloat. Defaults to none. | |||||
| The scale array along each dimension, contain 3 elements: scale_depth, scale_height, scale_width. | |||||
| The number of elements of 'scales' should be the same as the rank of input 'x'. | |||||
| One of 'scales' and 'output_size' MUST be specified and it is an error if both are specified. \n | |||||
| *@li align_corners: An optional bool. Defaults to false. | |||||
| If true, the input and output tensors are aligned by the center points of their corner pixels, preserving the | |||||
| values at the corner pixels. If false, the input and output tensors are aligned by the corner points of their | |||||
| corner pixels, and the interpolation use edge value padding for out of boundary values. \n | |||||
| *@par Outputs: | |||||
| *y: A 5-D tensor. Has the same type as input x, shape depends on x and output_size/scales. \n | |||||
| *@par Restrictions: | |||||
| *Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. \n | |||||
| */ | |||||
| REG_OP(UpsampleTrilinear3d) | |||||
| .INPUT(x, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .OUTPUT(y, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .ATTR(output_size, ListInt, {}) | |||||
| .ATTR(scales, ListFloat, {}) | |||||
| .ATTR(align_corners, Bool, false) | |||||
| .OP_END_FACTORY_REG(UpsampleTrilinear3d) | |||||
| /** | |||||
| *@brief Upsample the 3-D gradient data with the nearest neighbor interpolation algorithm. \n | |||||
| *@par Inputs: | |||||
| *One inputs, including: | |||||
| * @li grad_output: A 5-D input tensor [N, C, D, H, W]. Must be one of the following types: | |||||
| * float32, float64. \n | |||||
| *@par Attributes: | |||||
| *@li input_size: An required listInt. | |||||
| contain 5 elements: [min_batch, channels, depth, height, width]. Must: | |||||
| input_size[0] == grad_output_tensor_size[0] | |||||
| input_size[1] == grad_output_tensor_size[1]. \n | |||||
| *@li output_size: An optional listInt. Defaults to none. | |||||
| contain 3 elements: depth, height, width. The number of elements of 'output_size' should | |||||
| be the same as the rank of input 'grad_output'. Only one of 'scales' and 'output_size' can be specified. Must: | |||||
| grad_output_tensor_size[2] == floor(input_size[2] * scales[0]) == output_size[0] | |||||
| grad_output_tensor_size[3] == floor(input_size[3] * scales[1]) == output_size[1] | |||||
| grad_output_tensor_size[4] == floor(input_size[4] * scales[2]) == output_size[2]. \n | |||||
| *@li scales: An optional listFloat. Defaults to none. | |||||
| The scale array along each dimension, contain 3 elements: scale_depth, scale_height, scale_width. | |||||
| The number of elements of 'scales' should be the same as the rank of input 'grad_output'. | |||||
| One of 'scales' and 'output_size' MUST be specified and it is an error if both are specified. \n | |||||
| *@par Outputs: | |||||
| *y: A 5-D tensor. Has the same type as input grad_output, shape depends on Attributes:input_size. \n | |||||
| *@par Restrictions: | |||||
| *Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
| */ | |||||
| REG_OP(UpsampleNearest3dGrad) | |||||
| .INPUT(grad_output, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .OUTPUT(y, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .REQUIRED_ATTR(input_size, ListInt) | |||||
| .ATTR(output_size, ListInt, {}) | |||||
| .ATTR(scales, ListFloat, {}) | |||||
| .OP_END_FACTORY_REG(UpsampleNearest3dGrad) | |||||
| /** | |||||
| *@brief Upsample the 3-D gradient data trilinear interpolation algorithm. \n | |||||
| *@par Inputs: | |||||
| *One inputs, including: | |||||
| * @li grad_output: A 5-D input tensor [N, C, D, H, W]. Must be one of the following types: | |||||
| * float32, float64. \n | |||||
| *@par Attributes: | |||||
| *@li input_size: An required listInt. | |||||
| contain 5 elements: [min_batch, channels, depth, height, width]. Must: | |||||
| input_size[0] == grad_output_tensor_size[0] | |||||
| input_size[1] == grad_output_tensor_size[1]. \n | |||||
| *@li output_size: An optional listInt. Defaults to none. | |||||
| contain 3 elements: depth, height, width. The number of elements of 'output_size' should | |||||
| be the same as the rank of input 'grad_output'. Only one of 'scales' and 'output_size' can be specified. Must: | |||||
| grad_output_tensor_size[2] == floor(input_size[2] * scales[0]) == output_size[0] | |||||
| grad_output_tensor_size[3] == floor(input_size[3] * scales[1]) == output_size[1] | |||||
| grad_output_tensor_size[4] == floor(input_size[4] * scales[2]) == output_size[2]. \n | |||||
| *@li scales: An optional listFloat. Defaults to none. | |||||
| The scale array along each dimension, contain 3 elements: scale_depth, scale_height, scale_width. | |||||
| The number of elements of 'scales' should be the same as the rank of input 'grad_output'. | |||||
| One of 'scales' and 'output_size' MUST be specified and it is an error if both are specified. \n | |||||
| *@par Outputs: | |||||
| *y: A Tensor with shape depends on intput_size and output_size/scales. Must be one of the following | |||||
| types: float16, float32. \n | |||||
| *@par Restrictions: | |||||
| *Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
| */ | |||||
| REG_OP(UpsampleTrilinear3dGrad) | |||||
| .INPUT(grad_output, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .OUTPUT(y, TensorType({DT_FLOAT, DT_DOUBLE})) | |||||
| .REQUIRED_ATTR(input_size, ListInt) | |||||
| .ATTR(output_size, ListInt, {}) | |||||
| .ATTR(scales, ListFloat, {}) | |||||
| .ATTR(align_corners, Bool, false) | |||||
| .OP_END_FACTORY_REG(UpsampleTrilinear3dGrad) | |||||
| } // namespace ge | } // namespace ge | ||||
| #endif // OPS_BUILT_IN_OP_PROTO_INC_IMAGE_OPS_H_ | #endif // OPS_BUILT_IN_OP_PROTO_INC_IMAGE_OPS_H_ | ||||
| @@ -1120,11 +1120,12 @@ REG_OP(IndexAdd) | |||||
| *@brief: Returns the upper triangular part of a matrix (2-D tensor) or batch of matrices input \n | *@brief: Returns the upper triangular part of a matrix (2-D tensor) or batch of matrices input \n | ||||
| *@par Inputs: | *@par Inputs: | ||||
| * Two inputs, including: | |||||
| *@li x: A Tensor. Must be one of the following types: | |||||
| * float16, float32, double, int32, uint8, int16, int8, complex64, int64, | |||||
| * qint8, quint8, qint32, uint16, complex128, uint32, uint64. | |||||
| *@li diagonal:(int, optional) – the diagonal to consider。\n | |||||
| *x: A Tensor. Must be one of the following types: | |||||
| *float16, float32, double, int32, uint8, int16, int8, complex64, int64, | |||||
| *qint8, quint8, qint32, uint16, complex128, uint32, uint64. \n | |||||
| *@par Attributes: | |||||
| *diagonal: An optional attribute indicates the diagonal to consider. \n | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *y: A Tensor. Has the same type as "x" . \n | *y: A Tensor. Has the same type as "x" . \n | ||||
| @@ -1142,11 +1143,12 @@ REG_OP(Triu) | |||||
| *@brief: Returns the upper triangular part of a matrix (2-D tensor) or batch of matrices input \n | *@brief: Returns the upper triangular part of a matrix (2-D tensor) or batch of matrices input \n | ||||
| *@par Inputs: | *@par Inputs: | ||||
| * Two inputs, including: | |||||
| *@li x: A Tensor. Must be one of the following types: | |||||
| * float16, float32, double, int32, uint8, int16, int8, complex64, int64, | |||||
| * qint8, quint8, qint32, uint16, complex128, uint32, uint64. | |||||
| *@li diagonal:(int, optional) – the diagonal to consider。\n | |||||
| *x: A Tensor. Must be one of the following types: | |||||
| *float16, float32, double, int32, uint8, int16, int8, complex64, int64, | |||||
| *qint8, quint8, qint32, uint16, complex128, uint32, uint64. \n | |||||
| *@par Attributes: | |||||
| *diagonal: An optional attribute indicates the diagonal to consider. \n | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *y: A Tensor. Has the same type as "x" . \n | *y: A Tensor. Has the same type as "x" . \n | ||||
| @@ -1445,16 +1445,16 @@ REG_OP(DecodeBboxV2) | |||||
| .OP_END_FACTORY_REG(DecodeBboxV2) | .OP_END_FACTORY_REG(DecodeBboxV2) | ||||
| /** | /** | ||||
| *@brief Computes sort function. | |||||
| *@brief sort the input tensor and return the value of index. | |||||
| * | * | ||||
| *@par Inputs: | *@par Inputs: | ||||
| *Inputs include: | *Inputs include: | ||||
| * x: A Tensor. Dtype support: flaot16, flaot, int16, int8, | |||||
| * x: A Tensor. Dtype support: float16, float, int16, int8, | |||||
| uint8, int32, int64. | uint8, int32, int64. | ||||
| * | * | ||||
| *@par Attributes: | *@par Attributes: | ||||
| * @li axis: optional, int. | |||||
| * @li descending: optional,bool. | |||||
| * @li axis: An optional attribute indicates the sorting axis. | |||||
| * @li descending: An optional attribute indicates desending sort or not. | |||||
| * | * | ||||
| *@par Outputs: | *@par Outputs: | ||||
| * @li y1: A Tensor. Must have the same type as x. | * @li y1: A Tensor. Must have the same type as x. | ||||
| @@ -1515,10 +1515,10 @@ whether boxes overlap too much with respect to IOU. | |||||
| deciding when to remove boxes based on score . \n | deciding when to remove boxes based on score . \n | ||||
| *@par Attributes: | *@par Attributes: | ||||
| *center_point_box:Integer indicate the format of the box data. | |||||
| The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] | |||||
| where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair | |||||
| of box corners and the coordinates can be provided as normalized | |||||
| *center_point_box:Integer indicate the format of the box data. | |||||
| The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] | |||||
| where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair | |||||
| of box corners and the coordinates can be provided as normalized | |||||
| (i.e., lying in the interval [0, 1]) or absolute.Mostly used for TF models. | (i.e., lying in the interval [0, 1]) or absolute.Mostly used for TF models. | ||||
| 1 - the box data is supplied as [x_center, y_center, width, height]. | 1 - the box data is supplied as [x_center, y_center, width, height]. | ||||
| Mostly used for Pytorch models. \n | Mostly used for Pytorch models. \n | ||||
| @@ -1567,16 +1567,18 @@ deciding when to remove boxes based on score . \n | |||||
| the last dim representing (batch_id,class_id,index_id) . \n | the last dim representing (batch_id,class_id,index_id) . \n | ||||
| *@par Attributes: | *@par Attributes: | ||||
| *center_point_box:Integer indicate the format of the box data. | |||||
| The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] | |||||
| where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair | |||||
| of box corners and the coordinates can be provided as normalized | |||||
| *@li center_point_box:Integer indicate the format of the box data. | |||||
| The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] | |||||
| where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair | |||||
| of box corners and the coordinates can be provided as normalized | |||||
| (i.e., lying in the interval [0, 1]) or absolute.Mostly used for TF models. | (i.e., lying in the interval [0, 1]) or absolute.Mostly used for TF models. | ||||
| 1 - the box data is supplied as [x_center, y_center, width, height]. | 1 - the box data is supplied as [x_center, y_center, width, height]. | ||||
| Mostly used for Pytorch models. \n | |||||
| Mostly used for Pytorch models. | |||||
| *@li max_boxes_size: An optional attribute integer representing the real maximum | |||||
| *number of boxes to be selected by non max suppression . \n | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *@li selected_indices: A 2-D integer tensor of shape [M] representing the | |||||
| *selected_indices: A 2-D integer tensor of shape [M] representing the | |||||
| selected indices from the boxes tensor, where M <= max_output_size. \n | selected indices from the boxes tensor, where M <= max_output_size. \n | ||||
| *@attention Constraints: | *@attention Constraints: | ||||
| @@ -1602,7 +1604,7 @@ REG_OP(NonMaxSuppressionV7) | |||||
| *@brief Obtains the ROI feature matrix from the feature map list. It is a customized fused operator for mmdetection. \n | *@brief Obtains the ROI feature matrix from the feature map list. It is a customized fused operator for mmdetection. \n | ||||
| *@par Inputs: | *@par Inputs: | ||||
| * Three inputs, including: | |||||
| * Two inputs, including: | |||||
| *@li features: A 5HD Tensor list of type float32 or float16. | *@li features: A 5HD Tensor list of type float32 or float16. | ||||
| *@li rois: ROI position. A 2D Tensor of float32 or float16 with shape (N, 5). "N" indicates the number of ROIs, | *@li rois: ROI position. A 2D Tensor of float32 or float16 with shape (N, 5). "N" indicates the number of ROIs, | ||||
| * the value "5" indicates the indexes of images where the ROIs are located, "x0", "y0", "x1", and "y1". | * the value "5" indicates the indexes of images where the ROIs are located, "x0", "y0", "x1", and "y1". | ||||
| @@ -1818,4 +1820,3 @@ REG_OP(GridAssignPositive) | |||||
| } // namespace ge | } // namespace ge | ||||
| #endif // OPS_BUILT_IN_OP_PROTO_INC_NN_DETECT_OPS_H_ | #endif // OPS_BUILT_IN_OP_PROTO_INC_NN_DETECT_OPS_H_ | ||||
| @@ -568,7 +568,7 @@ REG_OP(LayerNorm) | |||||
| .OP_END_FACTORY_REG(LayerNorm) | .OP_END_FACTORY_REG(LayerNorm) | ||||
| /** | /** | ||||
| *@brief Returns a tensor where each sub-tensor of input along dimension | |||||
| *@brief Returns a tensor where each sub-tensor of input along dimension | |||||
| * dim is normalized such that the p-norm of the sub-tensor is lower than the value maxnorm. \n | * dim is normalized such that the p-norm of the sub-tensor is lower than the value maxnorm. \n | ||||
| *@par Inputs: | *@par Inputs: | ||||
| @@ -576,7 +576,7 @@ REG_OP(LayerNorm) | |||||
| * @li x: A Tensor. Must be one of the following types: float16, float32 . \n | * @li x: A Tensor. Must be one of the following types: float16, float32 . \n | ||||
| *@par Attributes: | *@par Attributes: | ||||
| * @li p: Specify L_p norm, the type is float. | |||||
| * @li p: Specify L_p norm, the type is float. | |||||
| * @li dim: The processed dim, the type is int. | * @li dim: The processed dim, the type is int. | ||||
| * @li maxnorm: Threshold for comparison, the type is float. \n | * @li maxnorm: Threshold for comparison, the type is float. \n | ||||
| @@ -1543,14 +1543,14 @@ REG_OP(SigmoidCrossEntropyWithLogitsGradV2) | |||||
| .ATTR(reduction, String, "mean") | .ATTR(reduction, String, "mean") | ||||
| .OP_END_FACTORY_REG(SigmoidCrossEntropyWithLogitsGradV2) | .OP_END_FACTORY_REG(SigmoidCrossEntropyWithLogitsGradV2) | ||||
| /** | /** | ||||
| * @brief Calculate the PoissonNllLoss function. | |||||
| * @brief Calculate the PoissonNllLoss function. | |||||
| * target∼Poisson(input)loss(input,target)=input−target∗log(input)+log(target!) \n | * target∼Poisson(input)loss(input,target)=input−target∗log(input)+log(target!) \n | ||||
| * @par Inputs: | * @par Inputs: | ||||
| * Two inputs, including: | * Two inputs, including: | ||||
| * @li input_x: A tensor. Must be one of the following types: | * @li input_x: A tensor. Must be one of the following types: | ||||
| * float16, float32. \n | * float16, float32. \n | ||||
| * | |||||
| * | |||||
| * @par Inputs: | * @par Inputs: | ||||
| * @li target: A tensor. Must be one of the following types: | * @li target: A tensor. Must be one of the following types: | ||||
| * float16, float32. \n | * float16, float32. \n | ||||
| @@ -1558,13 +1558,13 @@ REG_OP(SigmoidCrossEntropyWithLogitsGradV2) | |||||
| * @par Attributes: | * @par Attributes: | ||||
| * four Attributes, including: | * four Attributes, including: | ||||
| * @li log_input: An optional bool. Defaults to "True" \n | * @li log_input: An optional bool. Defaults to "True" \n | ||||
| * | |||||
| * | |||||
| * @par Attributes: | * @par Attributes: | ||||
| * @li full: An optional bool. Defaults to "False" \n | * @li full: An optional bool. Defaults to "False" \n | ||||
| * | |||||
| * | |||||
| * @par Attributes: | * @par Attributes: | ||||
| * @li eps: An optional float. Defaults to "1e-8" \n | * @li eps: An optional float. Defaults to "1e-8" \n | ||||
| * | |||||
| * | |||||
| * @par Attributes: | * @par Attributes: | ||||
| * @li reduction: An optional string. Defaults to "mean" \n | * @li reduction: An optional string. Defaults to "mean" \n | ||||
| @@ -1592,7 +1592,7 @@ REG_OP(PoissonNllLoss) | |||||
| * @li num_step: A required int.\n | * @li num_step: A required int.\n | ||||
| * @li hidden_size: A required int. \n | * @li hidden_size: A required int. \n | ||||
| * | * | ||||
| * | |||||
| * | |||||
| * @par Output: | * @par Output: | ||||
| * y: A mutable Tensor of type float16, with the shape of [num_step, batch_size, hidden_size]. \n | * y: A mutable Tensor of type float16, with the shape of [num_step, batch_size, hidden_size]. \n | ||||
| * | * | ||||
| @@ -1605,24 +1605,22 @@ REG_OP(RnnGenMask) | |||||
| .OP_END_FACTORY_REG(RnnGenMask) | .OP_END_FACTORY_REG(RnnGenMask) | ||||
| /** | /** | ||||
| * @brief Creates a criterion that optimizes a multi-class multi-classification hinge loss (margin-based loss) | |||||
| * @brief Creates a criterion that optimizes a multi-class multi-classification hinge loss (margin-based loss) | |||||
| * between input x (a 2D mini-batch Tensor) and output y (which is a 2D Tensor of target class indices) \n | * between input x (a 2D mini-batch Tensor) and output y (which is a 2D Tensor of target class indices) \n | ||||
| * @par Inputs: | * @par Inputs: | ||||
| * Two inputs, including: | * Two inputs, including: | ||||
| * @li x: A tensor. Must be one of the following types: | * @li x: A tensor. Must be one of the following types: | ||||
| * float16, float32. \n | |||||
| * | |||||
| * @par Inputs: | |||||
| * float16, float32. | |||||
| * @li target: A tensor. Must be the following types: | * @li target: A tensor. Must be the following types: | ||||
| * int32. \n | * int32. \n | ||||
| * @par Attributes: | * @par Attributes: | ||||
| * @li reduction: An optional string. Defaults to "mean" \n | |||||
| * reduction: An optional string. Defaults to "mean" \n | |||||
| * @par Outputs: | * @par Outputs: | ||||
| * y: A Tensor has same element type as input x. \n | |||||
| * is_target: A Tensor has same element type as input target. \n | |||||
| * @li y: A Tensor has same element type as input x. \n | |||||
| * @li is_target: A Tensor has same element type as input target. \n | |||||
| * @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
| * Compatible with the Pytorch operator MultiLabelMarginLoss. \n | * Compatible with the Pytorch operator MultiLabelMarginLoss. \n | ||||
| @@ -224,22 +224,22 @@ REG_OP(Relu6Grad) | |||||
| .OUTPUT(backprops, TensorType::RealNumberType()) | .OUTPUT(backprops, TensorType::RealNumberType()) | ||||
| .OP_END_FACTORY_REG(Relu6Grad) | .OP_END_FACTORY_REG(Relu6Grad) | ||||
| /** | /** | ||||
| *@brief Calculate the elu_grad_v2 function. | |||||
| *@brief Calculate the elu_grad_v2 function. | |||||
| *Applies the element-wise function: | *Applies the element-wise function: | ||||
| * Computes the backward for the elu: if x>0, 1; otherwise elu() + alpha . | * Computes the backward for the elu: if x>0, 1; otherwise elu() + alpha . | ||||
| *@par Inputs: | *@par Inputs: | ||||
| *One inputs, including: | *One inputs, including: | ||||
| * @li grads: A tensor. Must be one of the following types: | * @li grads: A tensor. Must be one of the following types: | ||||
| * float16, float32. | |||||
| * float16, float32. | |||||
| * @li activations: A tensor. Must be one of the following types: | * @li activations: A tensor. Must be one of the following types: | ||||
| * float16, float32. | |||||
| * float16, float32. | |||||
| * | * | ||||
| *@par Outputs: | *@par Outputs: | ||||
| *y: A Tensor with the same type and shape of grads's. | *y: A Tensor with the same type and shape of grads's. | ||||
| * | |||||
| * | |||||
| *@par Attributes: | *@par Attributes: | ||||
| *@li alpha: scalar parameter, default value = 1.0 | *@li alpha: scalar parameter, default value = 1.0 | ||||
| */ | |||||
| */ | |||||
| REG_OP(EluGradV2) | REG_OP(EluGradV2) | ||||
| .INPUT(grads, TensorType({DT_FLOAT, DT_FLOAT16})) | .INPUT(grads, TensorType({DT_FLOAT, DT_FLOAT16})) | ||||
| .INPUT(activations, TensorType({DT_FLOAT, DT_FLOAT16})) | .INPUT(activations, TensorType({DT_FLOAT, DT_FLOAT16})) | ||||
| @@ -539,24 +539,20 @@ REG_OP(Elu) | |||||
| *x: A float16, float32, for the input data type . \n | *x: A float16, float32, for the input data type . \n | ||||
| *@par Attributes: | *@par Attributes: | ||||
| *alpha1: A float32. Defines at which negative value the ELU saturates. Defaults to "1.0" . \n | |||||
| *@par Attributes: | |||||
| *alpha2: A float32. Defines at which negative value the ELU saturates. Defaults to "1.0" . \n | |||||
| *@par Attributes: | |||||
| *alpha3: A float32. Defines at which positive value the ELU saturates. Defaults to "1.0" . \n | |||||
| *@li alpha1: A float32. Defines at which negative value the ELU saturates. Defaults to "1.0" . | |||||
| *@li alpha2: A float32. Defines at which negative value the ELU saturates. Defaults to "1.0" . | |||||
| *@li alpha3: A float32. Defines at which positive value the ELU saturates. Defaults to "1.0" . \n | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *y: A float16, float32, for the normalized result . \n | *y: A float16, float32, for the normalized result . \n | ||||
| *@attention Constraints: | *@attention Constraints: | ||||
| *@li The input is of type float16 or float32 . \n | |||||
| *The input is of type float16 or float32 . \n | |||||
| *@par Multiple batches supported or not | *@par Multiple batches supported or not | ||||
| *Supported | *Supported | ||||
| *@par Third-party framework compatibility | *@par Third-party framework compatibility | ||||
| *@li Compatible with ONNX's Celu operator | |||||
| *Compatible with ONNX's Celu operator | |||||
| */ | */ | ||||
| REG_OP(Celu) | REG_OP(Celu) | ||||
| .INPUT(x, TensorType({DT_FLOAT,DT_FLOAT16})) | .INPUT(x, TensorType({DT_FLOAT,DT_FLOAT16})) | ||||
| @@ -808,15 +804,15 @@ REG_OP(SoftplusV2Grad) | |||||
| /** | /** | ||||
| * @brief ThresholdedRelu takes one input data (Tensor) and produces one output data (Tensor) | * @brief ThresholdedRelu takes one input data (Tensor) and produces one output data (Tensor) | ||||
| * where the rectified linear function, y = x for x > alpha, y = 0 otherwise, is applied to the tensor elementwise. | * where the rectified linear function, y = x for x > alpha, y = 0 otherwise, is applied to the tensor elementwise. | ||||
| * | |||||
| * | |||||
| * @par inputs | * @par inputs | ||||
| * one input including: | * one input including: | ||||
| * @li x: input A Tensor. Must be one of the following types: float32, float16 | * @li x: input A Tensor. Must be one of the following types: float32, float16 | ||||
| * | |||||
| * | |||||
| * @par output | * @par output | ||||
| * one output including: | * one output including: | ||||
| * @li y:A Tensor of the same type as x | * @li y:A Tensor of the same type as x | ||||
| * | |||||
| * | |||||
| */ | */ | ||||
| REG_OP(ThresholdedRelu) | REG_OP(ThresholdedRelu) | ||||
| .INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | .INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
| @@ -892,7 +888,7 @@ REG_OP(HardShrink) | |||||
| * @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
| * Compatible with the Pytorch operator Hardsigmoid. \n | * Compatible with the Pytorch operator Hardsigmoid. \n | ||||
| */ | |||||
| */ | |||||
| REG_OP(HardSigmoid) | REG_OP(HardSigmoid) | ||||
| .INPUT(input_x, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | .INPUT(input_x, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | ||||
| .OUTPUT(output_y, TensorType({DT_FLOAT, DT_FLOAT16})) | .OUTPUT(output_y, TensorType({DT_FLOAT, DT_FLOAT16})) | ||||
| @@ -213,11 +213,11 @@ REG_OP(PadV2) | |||||
| *@brief Pads a tensor . \n | *@brief Pads a tensor . \n | ||||
| *@par Inputs: | *@par Inputs: | ||||
| *x: A Tensor. Must be one of the following types: float16, float32, int32 . \n | |||||
| *constant_values: A Tensor. Must have the same type as input. | |||||
| *@li x: A Tensor. Must be one of the following types: float16, float32, int32 . \n | |||||
| *@li constant_values: A Tensor. Must have the same type as input. | |||||
| *@par Attributes: | *@par Attributes: | ||||
| *paddings: An optional "vector<vector<int>>". Defaults to "{}". | |||||
| *paddings: A required Attribute. | |||||
| * For each dimension D of input, paddings[D, 0] indicates how many | * For each dimension D of input, paddings[D, 0] indicates how many | ||||
| * values to add before the contents of tensor in that dimension, | * values to add before the contents of tensor in that dimension, | ||||
| * and paddings[D, 1] indicates how many values to add after the | * and paddings[D, 1] indicates how many values to add after the | ||||
| @@ -584,6 +584,30 @@ REG_OP(DropoutV2) | |||||
| .OUTPUT(seed, TensorType({ DT_FLOAT })) | .OUTPUT(seed, TensorType({ DT_FLOAT })) | ||||
| .REQUIRED_ATTR(p, Float) | .REQUIRED_ATTR(p, Float) | ||||
| .OP_END_FACTORY_REG(DropoutV2) | .OP_END_FACTORY_REG(DropoutV2) | ||||
| /** | |||||
| * @brief The Bernoulli distribution with probability . \n | |||||
| * @par Inputs: | |||||
| * @li x: A ND Tensor. Must be one of the following data types: | |||||
| int8, uint8, int16, int32, int64, bool, float32, float64 . | |||||
| * @li p: A ND Tensor. The probability of an element to be zeroed. | |||||
| Must be one of the following data types: float32, float64. \n | |||||
| * @par Attributes: | |||||
| * seed: An Integer, the seed of the random generator. Default value -1 | |||||
| to use current timestamp, otherwise it should be a positive integer. | |||||
| * @par Outputs: | |||||
| * y: A tensor with the same shape and type as "x". | |||||
| */ | |||||
| REG_OP(Bernoulli) | |||||
| .INPUT(x, TensorType({ DT_INT8, DT_UINT8, DT_INT16, DT_INT32, DT_INT64, DT_BOOL, DT_FLOAT, DT_DOUBLE})) | |||||
| .INPUT(p, TensorType({ DT_FLOAT, DT_DOUBLE })) | |||||
| .OUTPUT(y, TensorType({ DT_INT8, DT_UINT8, DT_INT16, DT_INT32, DT_INT64, DT_BOOL, DT_FLOAT, DT_DOUBLE})) | |||||
| .ATTR(seed, Int, -1) | |||||
| .OP_END_FACTORY_REG(Bernoulli) | |||||
| } // namespace ge | } // namespace ge | ||||
| #endif // OPS_BUILT_IN_OP_PROTO_INC_RANDOM_OPS_H_ | #endif // OPS_BUILT_IN_OP_PROTO_INC_RANDOM_OPS_H_ | ||||
| @@ -182,14 +182,14 @@ REG_OP(Permute) | |||||
| * int8, uint8, int16, uint16, int32, uint32, int64,uint64, float16, float32. | * int8, uint8, int16, uint16, int32, uint32, int64,uint64, float16, float32. | ||||
| *@par Outputs: | *@par Outputs: | ||||
| * y: A 2D flattened Tensor with the contents of the input tensor, with input dimensions up to axis flattened | |||||
| * y: A 2D flattened Tensor with the contents of the input tensor, with input dimensions up to axis flattened | |||||
| * to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output. | * to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output. | ||||
| * Must be one of the following data types: int8, uint8, int16, uint16, int32, uint32, int64,uint64, float16, float32 . | * Must be one of the following data types: int8, uint8, int16, uint16, int32, uint32, int64,uint64, float16, float32 . | ||||
| *@par Attributes: | *@par Attributes: | ||||
| * axis: A optional int32, default value is 1. Indicate up to which input dimensions (exclusive) should be flattened | |||||
| * to the outer dimension of the output. The value for axis must be in the range [-r, r], where r is the rank of | |||||
| * the input tensor. Negative value means counting dimensions from the back. When axis = 0, the shape of | |||||
| * axis: A optional int32, default value is 1. Indicate up to which input dimensions (exclusive) should be flattened | |||||
| * to the outer dimension of the output. The value for axis must be in the range [-r, r], where r is the rank of | |||||
| * the input tensor. Negative value means counting dimensions from the back. When axis = 0, the shape of | |||||
| * the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n). | * the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n). | ||||
| *@par Third-party framework compatibility | *@par Third-party framework compatibility | ||||
| @@ -723,11 +723,13 @@ REG_OP(CompressFcOp) | |||||
| *@brief Performs Col2im for each batch entry. \n | *@brief Performs Col2im for each batch entry. \n | ||||
| *@par Inputs: | *@par Inputs: | ||||
| *@li input_x: The Col Tensor. 5-D, shape: `(n, c1, kernel_h*kernel_w, ho*wo, c0)`. | |||||
| where ho/wo is do = (output_d + 2*padding_d - dilation_d*(kernel_d - 1) - 1)//stride_d + 1 \n | |||||
| *@li x: The Col Tensor. 4-D, shape: `(n, c, kernel_h*kernel_w, ho*wo)`. | |||||
| where ho/wo is do = (output_d + 2*padding_d - dilation_d*(kernel_d - 1) - 1)//stride_d + 1. | |||||
| *@li output_size: The img shape Tensor. 1-D, shape:`(2)`, value: (output_h, output_w). \n | |||||
| *@par Outputs: | *@par Outputs: | ||||
| *@li output_y: The img Tensor. 5-D, shape: `(n, c1, output_h, output_w, c0)`. \n | |||||
| *y: The img Tensor. 4-D, shape: `(n, c, output_h, output_w)`. \n | |||||
| *@par Attributes: | *@par Attributes: | ||||
| *@li kernel_shape: ListInt, value: `(kernel_h, kernel_w)`, the shape of kernel in convolution. | *@li kernel_shape: ListInt, value: `(kernel_h, kernel_w)`, the shape of kernel in convolution. | ||||
| @@ -837,7 +839,7 @@ REG_OP(AffineGrid) | |||||
| *@par Inputs: | *@par Inputs: | ||||
| *Four inputs, including: | *Four inputs, including: | ||||
| *@li x: The input tensor. | *@li x: The input tensor. | ||||
| *@li size: The shape of output tensor. | |||||
| *@li size: The shape of output tensor. | |||||
| *@li stride: The stride of output tensor. | *@li stride: The stride of output tensor. | ||||
| *@li storage_offset: The offset in the underlying storage of the output tensor. \n | *@li storage_offset: The offset in the underlying storage of the output tensor. \n | ||||
| @@ -23,12 +23,18 @@ | |||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| typedef enum rtEventWaitStatus { | |||||
| EVENT_STATUS_COMPLETE = 0, | |||||
| EVENT_STATUS_NOT_READY = 1, | |||||
| EVENT_STATUS_MAX = 2, | |||||
| } rtEventWaitStatus_t; | |||||
| /** | /** | ||||
| * @ingroup event_flags | * @ingroup event_flags | ||||
| * @brief event op bit flags | * @brief event op bit flags | ||||
| */ | */ | ||||
| #define RT_EVENT_DEFAULT (0x00) | |||||
| #define RT_EVENT_WITH_FLAG (0x01) | |||||
| #define RT_EVENT_DEFAULT (0x0E) | |||||
| #define RT_EVENT_WITH_FLAG (0x0B) | |||||
| #define RT_EVENT_DDSYNC_NS 0x01U | #define RT_EVENT_DDSYNC_NS 0x01U | ||||
| #define RT_EVENT_STREAM_MARK 0x02U | #define RT_EVENT_STREAM_MARK 0x02U | ||||
| @@ -109,6 +115,16 @@ RTS_API rtError_t rtEventSynchronize(rtEvent_t event); | |||||
| */ | */ | ||||
| RTS_API rtError_t rtEventQuery(rtEvent_t event); | RTS_API rtError_t rtEventQuery(rtEvent_t event); | ||||
| /** | |||||
| * @ingroup dvrt_event | |||||
| * @brief Queries an event's wait status | |||||
| * @param [in] event event to query | |||||
| * @param [in out] EVENT_WAIT_STATUS status | |||||
| * @return EVENT_STATUS_COMPLETE for complete | |||||
| * @return EVENT_STATUS_NOT_READY for not complete | |||||
| */ | |||||
| RTS_API rtError_t rtEventQueryWaitStatus(rtEvent_t event, rtEventWaitStatus_t *status); | |||||
| /** | /** | ||||
| * @ingroup dvrt_event | * @ingroup dvrt_event | ||||
| * @brief computes the elapsed time between events. | * @brief computes the elapsed time between events. | ||||