日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

AI算子列表

發布時間:2023/11/28 生活经验 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AI算子列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AI算子列表
概述
目前只有部分算子可在一個庫中同時運行在MLU220和MLU270平臺。也就是用戶使用 ./build_cnplugin.sh --mlu270 命令編譯生成的 libcnplugin.so 文件可同時在MLU220和MLU270上運行,其余算子只能在MLU270上運行。支持MLU220和MLU270平臺的算子列表如下:
? Faster Rcnn Detection Output
? Roi Pool
? Proposal
? Yolov3 Detection Output
? Yolov2 Detection Output
? SSD Detection Output
? Resize Yuv To Rgba
? Yuv To Rgb
? Resize
? Bert Pre
后續版本會完善其余算子對不同平臺的支持。
Add Pad
? 功能描述
給圖片的右側和下側加邊框。
支持型號:MLU220和MLU270系列。
? 參數限制
輸入:
o param:輸入參數結構體。
o tensor:一個四維的張量,形狀是batchNum, 1 or 4, dst_h, dst_w,目前只支持UINT8格式。
o pad_value_tensor:一個四維的張量,形狀是1, 3, 1, 1,目前只支持UINT8格式。
輸出:
o dst_tensor:經過padding的四維張量。形狀是:batchNum, 1 or 4, src_h, src_w。目前只支持UINT8格式。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
o src_w和dst_w必須是32對齊,src_h和 dst_h必須是2對齊。
o 輸入的圖片可以是YUV SP420或者RGB(RGBA),輸入的通道也相應是1或者4。
o pad value是要填充的值。如果通道的大小為3,通道的值應為是yuv或者rgb。
Anchor Generator
? 功能描述
根據形狀生成anchors。
算子接收feature shape、image shape、base achor size、scales、ratios幾個參數,實現過程如下:
o base anchor size是anchor的默認size。
o scales和ratios在base anchor size的基礎上對長寬、以及長寬比進行變形。
o 一個點生成 scales.size() * ratios.size() 個anchor,整個算子生成 scales.size() * ratios.size() * feature_shape[0]* feature_shape[1] 個 anchor。
支持型號:MLU220和MLU270系列。支持TensorFlow。
? 參數限制
輸入:
o feature_map_shape_mlu_tensor:維度是四維(NCHW)的張量。
o param:參數描述結構體。
輸出:
o grid_anchors_mlu_tensors:四維張量,形狀是1, len(scales) * len(aspect_ratios) * 4, featuremap_height, featuremap_width。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
o 輸入輸出的張量僅支持FLOAT16類型。
Arange
? 功能描述
根據給定的參數,生成一個大小為 size 的一維有序數組。
o start:數組的開始數據。
o step:數組步長。
o repeat:數組中每個數據重復次數。
o size:數組大小及數組中數據總個數。
支持型號:MLU270系列。支持MXNet。
? 參數限制
輸入:
o param:輸入參數結構體。
o input:輸入張量,無意義。這里是為了滿足CNML算子輸入要求。支持數據類型float16和float32。
o start:數列的起始值。
o stop:數列的結束值。算子中未用到。
o step:有序數列的步長。
o repeat:數列中每個數的重復次數。
o size:數列大小,數據總個數。
輸出:
o output:輸出張量,最后的有序數列。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Bert Base Encoder
? 功能描述
任務類型為SQuAD1.1的BERT-Base網絡。與pluginBertSquadOp算子不同的是,該算子不包含前后處理模塊。
支持型號:MLU270系列。支持TensorFlow。
? 參數限制
輸入:
o param:輸入參數結構體。
o cnml_input_ptr:一組描述BERT前處理后數據的四維張量。
o cnml_output_ptr:一組描述encoder后數據輸出的四維張量。
o input_tensor:BERT前處理后的數據。
o attr_mask:前處理后的mask輸入。
o attr_kernel_Q_ch0:query層的矩陣乘的權值。
o attr_kernel_Q_ch1:query層的矩陣乘的權值。
o attr_kernel_Q_ch2:query層的矩陣乘的權值。
o attr_kernel_Q_ch3:query層的矩陣乘的權值。
o attr_bias_Q:query層的矩陣乘的偏置。
o attr_kernel_K_ch0:key層的矩陣乘的權值。
o attr_kernel_K_ch1:key層的矩陣乘的權值。
o attr_kernel_K_ch2:key層的矩陣乘的權值。
o attr_kernel_K_ch3:key層的矩陣乘的權值。
o attr_bias_K:key層的矩陣乘的偏置。
o attr_kernel_V_ch0:value層的矩陣乘的權值。
o attr_kernel_V_ch1:value層的矩陣乘的權值。
o attr_kernel_V_ch2:value層的矩陣乘的權值。
o attr_kernel_V_ch3:value層的矩陣乘的權值。
o attr_bias_V:value層的矩陣乘的偏置。
o attr_output_kernel_ch0:attention_output層的矩陣乘的權值。
o attr_output_kernel_ch1:attention_output層的矩陣乘的權值。
o attr_output_kernel_ch2:attention_output層的矩陣乘的權值。
o attr_output_kernel_ch3:attention_output層的矩陣乘的權值。
o attr_output_bias:attention_output層的矩陣乘的偏置。
o attr_layernorm_beta:attention_output層的矩陣乘的beta。
o attr_layernorm_gamma:attention_output層的矩陣乘的gamma。
o inter_kernel_ch0:intermediate層的矩陣乘的權值。
o inter_kernel_ch1:intermediate層的矩陣乘的權值。
o inter_kernel_ch2:intermediate層的矩陣乘的權值。
o inter_kernel_ch3:intermediate層的矩陣乘的權值。
o inter_bias:intermediate層的矩陣乘的偏置。
o output_kernel_ch0:output層的矩陣乘的權值。
o output_kernel_ch1:output層的矩陣乘的權值。
o output_kernel_ch2:output層的矩陣乘的權值。
o output_kernel_ch3:output層的矩陣乘的權值。
o output_bias:output層的矩陣乘的偏置。
o output_layernorm_beta:output層的矩陣乘的beta。
o output_layernorm_gamma:output層的矩陣乘的gamma。
o fix_pos:網絡中所有Matmul和BatchMatMul的position。
o batch_num:輸入的batch數。
o seq_len:輸入語句長度。
輸出:
o encoder_out:encoder的輸出結果。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
o batch_size值范圍為1 - 8。
o seq_len值范圍為128 - 512并且 seq_len % 64 的余數為0。
o batch_size * seq_len 的值應小于或等于1024。
Bert Emb Encoder
? 功能描述
包含pre和encoder兩個模塊的bert_base網絡,可以根據不同任務接入不同的后處理。根據用戶使用需求,針對1batch和2batch做了專門的性能優化。
支持型號:MLU270系列。支持TensorFlow。
? 參數限制
輸入:
o input ids:int32類型,形狀為(batch, seqlen)。
o input_mask:float16類型,形狀為(batch, seqlen)。
o token_type_ids:int32類型,形狀為(batch, seqlen)。
o 權值參數:
? word_embedding_table:embedding層的詞向量表。
? segment_embedding_table:embedding層的詞向量表。
? position_embedding_table:embedding層的詞向量表。
? embedding_layernorm_beta:embedding層的layernorm參數beta。
? embedding_layernorm_gamma:embedding層的layernorm參數gamma。
? post_output_kernel:squad后處理中的矩陣乘的權值。
? post_output_bias:squad后處理中的矩陣乘的偏置。
? attr_kernel_Q_ch0:query層的矩陣乘的權值。
? attr_kernel_Q_ch1:query層的矩陣乘的權值。
? attr_kernel_Q_ch2:query層的矩陣乘的權值。
? attr_kernel_Q_ch3:query層的矩陣乘的權值。
? attr_bias_Q:query層的矩陣乘的偏置。
? attr_kernel_K_ch0:key層的矩陣乘的權值。
? attr_kernel_K_ch1:key層的矩陣乘的權值
? attr_kernel_K_ch2:key層的矩陣乘的權值。
? attr_kernel_K_ch3:key層的矩陣乘的權值。
? attr_bias_K:key層的矩陣乘的偏置。
? attr_kernel_V_ch0:value層的矩陣乘的權值。
? attr_kernel_V_ch1:value層的矩陣乘的權值。
? attr_kernel_V_ch2:value層的矩陣乘的權值。
? attr_kernel_V_ch3:value層的矩陣乘的權值。
? attr_bias_V:value層的矩陣乘的偏置。
? attr_output_kernel_ch0:attention_output層的矩陣乘的權值。
? attr_output_kernel_ch1:attention_output層的矩陣乘的權值。
? attr_output_kernel_ch2:attention_output層的矩陣乘的權值。
? attr_output_kernel_ch3:attention_output層的矩陣乘的權值。
? attr_output_bias:attention_output層的矩陣乘的偏置。
? attr_layernorm_beta:attention_output層的矩陣乘的beta。
? attr_layernorm_gamma:attention_output層的矩陣乘的gamma。
? inter_kernel_ch0:intermediate層的矩陣乘的權值。
? inter_kernel_ch1:intermediate層的矩陣乘的權值。
? inter_kernel_ch2:intermediate層的矩陣乘的權值。
? inter_kernel_ch3:intermediate層的矩陣乘的權值。
? inter_bias:intermediate層的矩陣乘的偏置。
? output_kernel_ch0:output層的矩陣乘的權值。
? output_kernel_ch1:output層的矩陣乘的權值。
? output_kernel_ch2:output層的矩陣乘的權值。
? output_kernel_ch3:output層的矩陣乘的權值。
? output_bias:output層的矩陣乘的偏置。
? output_layernorm_beta:output層的矩陣乘的beta。
? output_layernorm_gamma:output層的矩陣乘的gamma。
? fix_pos:網絡中所有Matmul或BatchMatMul的position。
? batch_num:輸入的batch數。
? input_seq_len:輸入語句長度output層的矩陣乘的權值、偏置、beta和gamma。
輸出:
o 以下面方式計算的輸出結果:
half * encoder_out / encoder
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
o batch_size = 1~8
o seq_len = 128 ~512 && seq_len % 64 =0
o batch_size * seq_len <= 1024
BertPre
? 功能描述
是BERT網絡的前處理步驟。通過查表操作,對輸入進行embedding操作。
支持型號:MLU220和MLU270系列。支持TensorFlow和PyTorch。
? 參數限制
輸入:
o param:輸入參數結構體。
o cnml_static_ptr:一組描述輸入權值的四維張量。
o cnml_intput_ptr:一組描述輸入數據的四維張量。
輸出:
o cnml_output_ptr:一組描述處理后數據的四維張量。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
輸入seq_len不得超過512。
Bert Squad
? 功能描述
執行任務類型為SQuAD1.1的BERT-Base網絡。
支持型號:MLU270系列。支持TensorFlow。
? 參數限制
輸入:
o input ids:數據類型為int32,形狀為(batch, seqlen)。
o input_mask:數據類型為float16,形狀為(batch, seqlen)。
o token_type_ids:數據類型為int32,形狀為(batch, seqlen)。
o word_embedding_table:embedding層的3個詞向量表。
o segment_embedding_table:embedding層的3個詞向量表。
o position_embedding_table:embedding層的3個詞向量表。
o embedding_layernorm_beta:embedding層的layernorm參數beta。
o embedding_layernorm_gamma:embedding層的layernorm參數gamma。
o post_output_kernel:squad后處理中的矩陣乘的權值。
o post_output_bias:squad后處理中的矩陣乘的偏置。
o attr_kernel_Q_ch0:query層的矩陣乘的權值。
o attr_kernel_Q_ch1:query層的矩陣乘的權值。
o attr_kernel_Q_ch2:query層的矩陣乘的權值。
o attr_kernel_Q_ch3:query層的矩陣乘的權值。
o attr_bias_Q:query層的矩陣乘的偏置。
o attr_kernel_K_ch0:key層的矩陣乘的權值。
o attr_kernel_K_ch1:key層的矩陣乘的權值。
o attr_kernel_K_ch2:key層的矩陣乘的權值。
o attr_kernel_K_ch3:key層的矩陣乘的權值。
o attr_bias_K:key層的矩陣乘的偏置。
o attr_kernel_V_ch0:value層的矩陣乘的權值。
o attr_kernel_V_ch1:value層的矩陣乘的權值。
o attr_kernel_V_ch2:value層的矩陣乘的權值。
o attr_kernel_V_ch3:value層的矩陣乘的權值。
o attr_bias_V:value層的矩陣乘的偏置。
o attr_output_kernel_ch0:attention_output層的矩陣乘的權值。
o attr_output_kernel_ch1:attention_output層的矩陣乘的權值。
o attr_output_kernel_ch2:attention_output層的矩陣乘的權值。
o attr_output_kernel_ch3:attention_output層的矩陣乘的權值。
o attr_output_bias:attention_output層的矩陣乘的偏置。
o attr_layernorm_beta:attention_output層的矩陣乘的beta。
o attr_layernorm_gamma:attention_output層的矩陣乘的gamma。
o inter_kernel_ch0:intermediate層的矩陣乘的權值。
o inter_kernel_ch1:intermediate層的矩陣乘的權值。
o inter_kernel_ch2:intermediate層的矩陣乘的權值。
o inter_kernel_ch3:intermediate層的矩陣乘的權值。
o inter_bias:intermediate層的矩陣乘的偏置。
o output_kernel_ch0:output層的矩陣乘的權值。
o output_kernel_ch1:output層的矩陣乘的權值。
o output_kernel_ch2:output層的矩陣乘的權值。
o output_kernel_ch3:output層的矩陣乘的權值。
o output_bias:output層的矩陣乘的偏置。
o output_layernorm_beta:output層的矩陣乘的beta。
o output_layernorm_gamma:output層的矩陣乘的gamma。
o fix_pos:網絡中所有Matmul和BatchMatMul的position。
o batch_num:輸入的batch數 。
o input_seq_len:輸入語句長度。
輸出:
o start_logits:數據類型為float32,形狀為(8, 128)。
o end_logits:數據類型為float32,形狀為(8, 128)。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
o batch_size的值范圍為 1 - 8。
o seq_len的值范圍為128 - 512并且 seq_len % 64 的余數為0。
o batch_size * seq_len 的值應小于或者等于1024。
Box Coder
? 功能描述
基于PaddlePaddle框架的box_coder()算子。
接收邊界框坐標,先驗框坐標和先驗框坐標的方差,并對邊界框坐標進行編碼。
支持型號:MLU270系列。
? 參數限制
輸入:
o param:輸入參數結構體,包括:
? row:邊界框的個數。
? col:邊界框類別的個數。
? len:邊界框坐標的維度,必須是4。
? axis:先驗框形狀的參數。
? normalized:輸出結果是否需要歸一化的標志位。
? float_presicion:浮點數數據類型。
? code_type:編碼的方式。
? core_version:運行的硬件平臺。
o input_tensors:一組四維輸入張量。張量的個數為3,順序為:target_box_tensor(邊界框坐標), prior_box_tensor(先驗框坐標),prior_box_var_tensor(先驗框坐標方差)。
輸出:
o output_tensors:一組思維輸出張量。張量的個數是1。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Clip Boxes
? 功能描述
對超出邊界的框進行裁剪。
支持型號:MLU220和MLU270系列。
? 參數限制
參數
o normalized:bool類型,表示是否對框進行歸一化。
o num_boxes: int類型,表示框的數量。
o data_type:int類型,表示輸入的數據類型。取值2代表half,取值4代表float。
o core_num:int類型,表示可用的硬件核數。
o core_version:硬件平臺。
輸入:
o boxes:輸入框,形狀是[num_boxes, 4]。
o image_shape:圖片形狀,形狀是[4]。
輸出:
輸出形狀是[num_boxes, 4]的四維張量。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Combined NMS
? 功能描述
支持多batch多class的NMS。
支持型號:MLU220和MLU270系列。
? 參數限制
輸入:
o param:輸入參數結構體。
o box:一個3維tensor,描述輸入的box。
o score:一個3維tensor,描述輸入的score。
o 參數:
? max_size_per_class:每個label的最大輸出size。
? total_size_per_batch:每個batch的最大輸出size,為-1時等于num_boxes。
? nms_topk:控制NMS前面的topk。
? score_threshold:分數閾值。
? iou_threshold:iou閾值。
? pad_per_class:是否對每個class做pad。
? clip_boxes:是否進行ClipToWindow。
? normalized:是否正則化。
? nms_eta:動態調整iou閾值。
? background_label:背景的label。
? batch_size:batch大小。
? num_classes:輸入class的數量。
? num_boxes:輸入box的數量。
? box_size:box的維度。
? data_type:數據類型,支持half和float32。
輸出:
o output_box:一個3維張量,描述輸出box。
o output_score:一個2維張量,描述輸出box的score。
o output_class:一個2維張量,描述輸出box的class。
o output_valid:一個1維張量,描述各bacth輸出的有效box的數量。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Conv3d
? 功能描述
五維(NDHWC)卷積運算。
支持型號:MLU270系列。
? 參數限制
輸入:
o param:輸入參數結構體,包括:
? input_n:輸入張量的batch維度。
? input_d:輸入張量的depth維度。
? input_h:輸入張量的height維度。
? input_w:輸入張量的weight維度。
? input_c:輸入張量的channel維度。
? output_d:輸出張量的depth維度。
? output_h:輸出張量的height維度。
? output_w:輸出張量的weight維度。
? output_c:輸出張量的channel維度。
? kernel_d : 卷積核的depth維度。
? kernel_h : 卷積核的hight維度。
? kernel_w : 卷積核的weight維度。
? stride_d: 卷積核在depth維度的步長。
? stride_h: 卷積核在hight維度的步長。
? stride_w: 卷積核在weight維度的步長。
? dilation_d: 卷積核在depth維度的膨脹大小。
? dilation_h: 卷積核在hight維度的膨脹大小。
? dilation_w: 卷積核在weight維度的膨脹大小。
? pad_d1: 輸入在depth維度起始處的填充大小。
? pad_d2: 輸入在depth維度終末處的填充大小。
? pad_h1: 輸入在hight維度起始處的填充大小。
? pad_h2: 輸入在weight維度終末處的填充大小。
? pad_w1: 輸入在weight維度起始處的填充大小。
? pad_w2: 輸入在weight維度終末處的填充大小。
? groups: 卷積在channel維度分組大小。
? has bias:是否具有bias。
? in_oc_pos:輸入張量的量化position。
? in_oc_scale:輸入張量的量化scale。
? filter_pos:權值的量化position。
? filter_scale:權值的量化scale。
? compute_dtpe :輸入張量的片上計算類型。
o input_tensors:輸入數據的描述符,個數必須是1。
o filter_tensors:權值數據的描述符,個數必須是1。
o bias_tensors:bias數據的描述符,個數必須是1。
輸出:
o output_tensors:輸出數據的描述符,個數必須是1。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Conv3d Bn Scale Active
? 功能描述
在conv3d的輸出上進行bn scale active運算。
支持型號:MLU270系列。
? 參數限制
輸入:
o param:輸入參數結構體。
? input_n:輸入張量的batch維度。
? input_d:輸入張量的depth維度。
? input_h:輸入張量的height維度。
? input_w:輸入張量的weight維度。
? input_c:輸入張量的channel維度。
? output_d:輸出張量的depth維度。
? output_h:輸出張量的height維度。
? output_w:輸出張量的weight維度。
? output_c:輸出張量的channel維度。
? kernel_d : 卷積核的depth維度。
? kernel_h : 卷積核的hight維度。
? kernel_w : 卷積核的weight維度。
? stride_d: 卷積核在depth維度的步長。
? stride_h: 卷積核在hight維度的步長。
? stride_w: 卷積核在weight維度的步長。
? dilation_d: 卷積核在depth維度的膨脹大小。
? dilation_h: 卷積核在hight維度的膨脹大小。
? dilation_w: 卷積核在weight維度的膨脹大小。
? pad_d1: 輸入在depth維度起始處的填充大小。
? pad_d2: 輸入在depth維度終末處的填充大小。
? pad_h1: 輸入在hight維度起始處的填充大小。
? pad_h2: 輸入在weight維度終末處的填充大小。
? pad_w1: 輸入在weight維度起始處的填充大小。
? pad_w2: 輸入在weight維度終末處的填充大小。
? groups: 卷積在channel維度分組大小。
? has bias:是否具有bias。
? in_oc_pos:輸入張量的量化position。
? in_oc_scale:輸入張量的量化scale。
? filter_pos:權值的量化position。
? filter_scale:權值的量化scale。
? compute_dtpe :輸入張量的片上計算類型。
o input_tensors:輸入數據的描述符,個數必須是1。
o filter_tensors:權值數據的描述符,個數必須是1。
o bias_tensors:bias數據的描述符,個數必須是1。
o bn_mean_tensor:bn_mean數據的描述符,個數必須是1。
o bn_mean_tensor:bn_varn數據的描述符,個數必須是1。
o scale_alpha_tensor:scale_alpha數據的描述符,個數必須是1。
o scale_beta_tensor:scale_beta數據的描述符,個數必須是1。
o active_type: 激活類型,只能是CNML_ACTIVE_RELU。
輸出:
o output_tensors:輸出數據的描述符,個數必須是1。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Continuation Indicator
? 功能描述
提供0或者1的輸出數據。
支持型號:MLU220和MLU270系列。
? 參數限制
輸入:
o param:輸入參數結構體,包括:
? batch_size: 輸出的通道數。
? time_step: 輸出的batch數。
輸出:
無。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
Convolution Forward
? 功能描述
用于進行卷積計算。
支持型號:MLU270。
? 參數限制
輸入:
o param:輸入參數結構體,包括:
? pad_top: h維度的起始處的pad size。
? pad_bottom: h維度終止處的pad size。
? pad_left:w維度的起始處的pad size。
? pad_right: w維度的終止處的pad size。
? kh:kernel在h維度的大小。
? kw:kernel在w維度的大小。
? sh:在h維度的stride大小。
? sw:在w維度的stride大小。
? dh:在h維度的dilation大小。
? dw:在w維度的dilation大小。
? input_pos:輸入的position量化參數。
? weight_pos:權值的position量化參數。
? input_scale:輸入的scale量化參數。
? weight_scale:權值的scale量化參數。
o input_tensors: 輸入數據的描述符,一共兩個。輸入第一個輸入規模必須是 [batch_num, hi. wi, ci],layout為NHWC。 第二個輸入規模必須是[1, 1, 1, 136],layout為NHWC。0-7的元素為 [batch_num, hi, wi, ci, ho, wo, co],8-134的元素為block_info的數據, 135的元素為kernel_type。block_info和kernel_type都通過調用接口獲得。
輸出:
o output_tensors: 輸出數據的描述符,一共一個輸出。
返回值:
正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
? 規格限制
o 輸入類型-權值類型-偏移類型-輸出類型分別支持 float16、int8、float16、float16或者float16、int8、float16、uint8。
o ci和co只能為3和64的排列組合。
o pad size只能在ci = co =3 時,等于0。
Crop And Resize
? 功能描述
從輸入圖片中裁剪出小圖再調整尺寸到指定大小,實現過程如下:

  1. roiNums決定一張圖片裁剪多少次。
  2. cropParams 決定每次裁剪的坐標(x y w h)。
  3. 將各個裁剪得到的小圖片調整到指定大小。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    輸入:
    o PluginCropAndResizeOp參數結構體:
    ? src:四維張量用于描述原始圖像。
    ? cropParams:四維張量用于描述所有的分割參數和roi參數。
    ? roiNums:四維張量用于描述每張圖片的roi個數。
    輸出:
    o dst:四維張量用于描述目標圖像。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。若返回異常則至少以下兩項中有一項不滿足要求:
    o 參數與輸入張量相對應。
    o cropParams和roiNums一致。
    ? 規格限制
    o 輸入圖像的寬度不超過8,192像素。
    o 輸出圖像的寬度不超過2,048像素(MLU270系列)。
    o 放大模式下的倍率不超過50(MLU270系列)。
    o 輸入的batch數必須是1。
    o cropParams中儲存的roi框描述方式均為左上角坐標以及框的寬和高,依次為roi_x、roi_y、roi_w、roi_h。
    Crop Feature And Resize
    ? 功能描述
    對輸入的feature map(N C H W),根據檢測出的bbox的坐標位置,將對應位置的feature map(N C H W)片段截取出來,然后所有截取的feature map都改變大小為固定的大小。
    o box_number表示對feature map進行多少次剪裁。
    o boxes_gdrm表示每次剪裁的坐標(x, y, w, h)。
    支持型號:MLU220和MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    PluginCropFeatureAndResizeOp參數結構體:
    o src_gdrm:四維張量用于描述輸入feature map。
    o boxes_gdrm:四維張量用于描述輸入剪裁的坐標。
    o box_index_gdrm:四維張量用于描述輸入boxes的索引。
    o batchNum:batch的大小。
    o depth:輸入的channel。
    o image_height:輸入feature map的高度。
    o imgae_width:輸入feature map的寬度。
    o crop_height:調整的高度。
    o crop_width:調整的寬度。
    o box_number:需要對輸入的feature map進行多少次剪裁,即bbox的個數。
    輸出:
    o dst_gdrm:四維張量用于描述輸出的feature map。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。若為異常至少以下兩項中有一項不滿足要求:
    o 參數與輸入張量相對應。
    o boxes_gdrm 和box_number應該一致。
    ? 規格限制
    o 輸入圖像的寬度不超過8,192像素。
    o 輸出圖像的寬度不超過2,048像素。
    o 放大模式下的倍率不超過50。
    o 輸入的batch數必須是1。
    Ctc Greedy Decoder
    ? 功能描述
    此算子用于推理過程,對輸入的序列進行解碼:對出入的序列數據中的每個序列單元查找概率最大的索引,然后按照分隔符的位置對得到的索引序列進行去重,輸出去重后的標簽結果。
    支持型號:MLU270系列。支持caffe。
    ? 參數限制
    輸入:
    o param: 輸入參數結構體,包括:
    ? batch_size: 輸入張量的batch維度。
    ? seq_len:輸入數據時間序列的長度,對應輸入張量的H維度。
    ? class_num:輸入數據類別的個數,對應輸入張量的W維度,也是一個單元數據的個數。
    ? merge_repeated:表示是否進行重復數據歸并的標志位。false代表不歸并,true代表歸并。
    o input:唯一輸入張量的描述符,形狀為[batch_size, seq_len, class_num, 1]。
    輸出:
    o output:唯一輸出數據的描述符,形狀為[batch_size, seq_len, 1, 1]。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入輸出tensor數據類型只支持float16。
    Deconv3d
    ? 功能描述
    五維(NDHWC)反卷積運算。
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? input_n:輸入張量的batch維度。
    ? input_d:輸入張量的depth維度。
    ? input_h:輸入張量的height維度。
    ? input_w:輸入張量的weight維度。
    ? input_c:輸入張量的channel維度。
    ? output_d:輸出張量的depth維度。
    ? output_h:輸出張量的height維度。
    ? output_w:輸出張量的weight維度。
    ? output_c:輸出張量的channel維度。
    ? kernel_d : 卷積核的depth維度。
    ? kernel_h : 卷積核的hight維度。
    ? kernel_w : 卷積核的weight維度。
    ? stride_d: 卷積核在depth維度的步長。
    ? stride_h: 卷積核在hight維度的步長。
    ? stride_w: 卷積核在weight維度的步長。
    ? dilation_d: 卷積核在depth維度的膨脹大小。
    ? dilation_h: 卷積核在hight維度的膨脹大小。
    ? dilation_w: 卷積核在weight維度的膨脹大小。
    ? pad_d1: 輸入在depth維度起始處的縮減大小。
    ? pad_d2: 輸入在depth維度終末處的縮減大小。
    ? pad_h1: 輸入在hight維度起始處的縮減大小。
    ? pad_h2: 輸入在weight維度終末處的縮減大小。
    ? pad_w1: 輸入在weight維度起始處的縮減充大小。
    ? pad_w2: 輸入在weight維度終末處的縮減大小。
    ? groups: 卷積在channel維度分組大小。
    ? out_padding_d:輸出張量在depth維度的填充大小。
    ? out_padding_h:輸出張量在hight維度的填充大小。
    ? out_padding_w:輸出張量在weight維度的填充大小。
    ? has bias:是否具有bias。
    ? in_oc_pos:輸入張量的量化position。
    ? in_oc_scale:輸入張量的量化scale。
    ? filter_pos:權值的量化position。
    ? filter_scale:權值的量化scale。
    ? compute_dtpe :輸入張量的片上計算類型。
    o input_tensors:輸入數據的描述符,個數必須是1。
    o ilter_tensors:權值數據的描述符,個數必須是1。
    o ias_tensors:bias數據的描述符,個數必須是1。
    輸出:
    o output_tensors:輸出數據的描述符,個數必須是1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Deconv3d Bn Scale Active
    ? 功能描述
    在deconv3d的輸出上進行bn scale active運算。
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    ? input_n:輸入張量的batch維度
    ? input_d:輸入張量的depth維度
    ? input_h:輸入張量的height維度。
    ? input_w:輸入張量的weight維度。
    ? input_c:輸入張量的channel維度。
    ? output_d:輸出張量的depth維度。
    ? output_h:輸出張量的height維度。
    ? output_w:輸出張量的weight維度。
    ? output_c:輸出張量的channel維度。
    ? kernel_d:卷積核的depth維度。
    ? kernel_h:卷積核的hight維度。
    ? kernel_w:卷積核的weight維度。
    ? stride_d:卷積核在depth維度的步長。
    ? stride_h:卷積核在hight維度的步長。
    ? stride_w:卷積核在weight維度的步長。
    ? dilation_d:卷積核在depth維度的膨脹大小。
    ? dilation_h:卷積核在hight維度的膨脹大小。
    ? dilation_w:卷積核在weight維度的膨脹大小。
    ? pad_d1:輸入在depth維度起始處的縮減大小。
    ? pad_d2:輸入在depth維度終末處的縮減大小。
    ? pad_h1:輸入在hight維度起始處的縮減大小。
    ? pad_h2:輸入在weight維度終末處的縮減大小。
    ? pad_w1:輸入在weight維度起始處的縮減充大小。
    ? pad_w2:輸入在weight維度終末處的縮減大小。
    ? groups:卷積在channel維度分組大小。
    ? out_padding_d:輸出張量在depth維度的填充大小
    ? out_padding_h:輸出張量在hight維度的填充大小。
    ? out_padding_w:輸出張量在weight維度的填充大小。
    ? has bias:是否具有bias。
    ? in_oc_pos:輸入張量的量化position。
    ? in_oc_scale:輸入張量的量化scale。
    ? filter_pos:權值的量化position。
    ? filter_scale:權值的量化scale。
    ? compute_dtpe:輸入張量的片上計算類型。
    o input_tensors:輸入數據的描述符,個數必須是1。
    o filter_tensors:權值數據的描述符,個數必須是1。
    o bias_tensors:bias數據的描述符,個數必須是1。
    o bn_mean_tensor:bn_mean數據的描述符,個數必須是1。
    o bn_mean_tensor:bn_varn數據的描述符,個數必須是1。
    o scale_alpha_tensor:scale_alpha數據的描述符,個數必須是1。
    o scale_beta_tensor:scale_beta數據的描述符,個數必須是1。
    o active_type:激活類型,只能是CNML_ACTIVE_RELU。
    輸出:
    o output_tensors:輸出數據的描述符,個數必須是1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Density Prior Box
    ? 功能描述
    基于PaddlePaddle框架的desity_prior_box()算子。
    基于輸入參數 densities、fixed_size,以及 fixed_ratio,為輸入圖片生成density prior box。
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? feat_width:特征圖寬度。
    ? feat_height:特征圖高度。
    ? image_width:網絡輸入圖片寬度。
    ? image_height:網絡輸入圖片高度。
    ? variances_ptr:先驗框坐標方差數據指針。
    ? variances_num:先驗框坐標的維度,必須是4。
    ? densities_ptr:密度數據指針。
    ? densities_num:密度數據的維度。
    ? fixed_sizes_ptr:fixed_size數據指針。
    ? fixed_size_num:fixed_size數據的個數。
    ? fixed_ratio_ptr:fixed_ratio數據指針。
    ? fixed_rario_num:fixed_ratio數據個數。
    ? clip:是否對邊界框坐標進行[0,1]區間內的裁剪。
    ? step_w:先驗框W方向的步長。
    ? step_h:先驗框w方向的步長。
    ? offset:先驗框中心相對于網格框中心的偏移。
    ? float_precision:浮點數數據類型。
    ? core_version:運行的硬件平臺。
    o input_tensors:一組四維輸入張量。張量的個數為2,順序為:feat_tensor,img_tensor。
    輸出:
    o output_tensors:一組思維輸出張量。張量的個數是1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Depth to Space
    ? 功能描述
    將輸入的depth維度(C)按照 block_size 的尺寸重新排列到 spatial 維度(HW)。
    支持型號:MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    o input:一個擺數為NHWC的四維張量。
    o block_size:HW維度的塊狀尺寸。
    o input_n/input_h/input_w/input_c:輸入張量的形狀。其中,input_c必須是 block_size 的平方的整數倍。
    輸出
    o output:一個擺數為HHWC的四維張量,形狀是[N, Hblock_size, Wblock_size, C/(block_size*block_size)]。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Depthwise Conv
    ? 功能描述
    用于深度可分卷積(Depthwise-Separable Convolution)第一部分的計算,相較于通常的卷積,不會在channel維度上進行累加。
    支持型號:MLU220和MLU270系列。僅支持4核(Union1)的運行場景。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? kernel_h:權值的height維度。
    ? kernel_w:權值的width維度。
    ? stride_h:權值在height方向上的stride大小。
    ? stride_w:權值在width方向上的stride大小。
    ? dilation_h:權值在height方向的dilation大小。
    ? dilation_w:權值在width方向的dilation大小。
    ? pad_h_back:在height維度末尾額外補充的0的個數。
    ? pad_h_front:在height維度開頭額外補充的0的個數。
    ? pad_w_back:在width維度末尾額外補充的0的個數。
    ? pad_w_front:在width維開頭額外補充的0的個數。
    ? group_count:channel維度進行group拆分的個數。
    ? bias_flag:標識Convolution算子計算后是否加上權值的標志位bias。false代表不加bias,true代表加上bias。
    o input_tensors:輸入張量的標識符數組,包含三個張量的標識符,存放順序為:
  4. input:輸入張量的標識符,形狀為[input_n, input_h, input_w, input_c]。
  5. filter:輸入權值的標識符,形狀為[output_co, kernel_h, kernel_w, input_c]。
  6. bias:輸入偏置的標識符,形狀為[output_c, 1, 1, 1]。
    輸出:
    o output_tensor:輸出張量的標識符,形狀為[output_n, output_h, output_w, output_c]。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o kernel_h * kernel_w 不能超過1024。
    o dilation_h 和 dilation_w必須是1。
    o 輸入-權值-輸出的數據類型組合目前只支持:
    ? float16-float16-float16
    ? float32-float32-float32
    Det Retina Detection Output
    ? 功能描述
    Det網絡后處理算子。
  7. 接收坐標、類別、置信度和topk的框索引號四個輸入張量以及張量的形狀參數。
  8. 將相應位置的數據解碼成邊界框的坐標。左上角位置的xy坐標以及框的長寬。
  9. 最后算子會對解碼后生成的邊界框進行非極大值抑制(NMS)操作,將不符合要求的邊界框篩除,并輸出剩余的邊界框。
    支持型號:MLU220和MLU270系列。支持PyTorch。
    ? 參數限制
    輸入:
    o inputs:一組detretina的輸入張量,維度是四維。
    o detretina_static_tensors:當標志位 CONST_PRIOR_TENSOR 為true時,需要傳入先驗框張量的指針(priorbox and variance),否則置為nullptr即可。
    輸出:
    o outputs:一組retina的輸出張量,維度是四維,形狀是 batchNum, 64 + 7 * numMaxBox, 1, 1。目前僅支持FLOAT16類型。每個batch的前兩個數字存儲檢框,每個檢測框的數據從第65個數字開始,以[batchId, classId, score, x1, y1, x2, y2]的順序存儲,(x1, y1) 和(x2, y2)代表左上和右下檢測框的坐標值。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Faster Rcnn Detection Output
    ? 功能描述
    對Faster-RCNN全連接層產生的數據進行處理,實現過程如下:
  10. 對于每個roi,根據bbox_pred進行坐標變換,得到真正的框的坐標。
  11. 對于每個類別,篩除score小于閾值的框,將其概率置為0。
  12. 按照類別,對剩下的框進行NMS操作。
  13. 按照類別,輸出篩選得到有效的含有該類別物體的所有框的坐標及其分數。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    o PluginFasterRcnnDetectionOutput參數結構體:
    ? bbox_pred:一組四維張量,形狀是num_class * 4, box_num, 1, 1,支持類型是FLOAT16和FLOAT32。
    ? scores_pred:一組四維張量,形狀是num_class, box_num, 1, 1,支持類型是FLOAT16和FLOAT32。
    ? rois_pred:一組四維張量,形狀是1, box_num, 1, 5,支持類型是FLOAT16和FLOAT32。
    o batch_num:batch的個數。
    o box_num:檢測框個數。
    o im_h:backbone網絡的輸入圖像的高度。
    o im_w:backbone網絡的輸入圖像的寬度。
    o score_thresh:得分的閾值。
    o fix8:輸入張量的類型是否為int8。如果該參數設為1,輸入張量的類型是int8類型。如果該參數設為0,輸入張量的類型是FLOAT或者HALF類型。
    o scale:圖片的縮放比例。
    輸出:
    o new_box:一組四維張量,形狀是1, box_num * num_class, 1, 6,支持類型是FLOAT16和FLOAT32。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Gemm Topk
    ? 功能描述
    對量化后的特征查詢向量與底庫進行矩陣乘,求得內積相似度,再輸出相似度的topk以及索引。
    支持型號:MLU270和MLU220系列。支持PyTorch。
    ? 參數限制
    輸入:
    o Param參數結構體包括:
    ? m:查詢特征向量的batch數。
    ? k:特征向量的特征長度。
    ? n:底庫中向量的數量。
    ? topk:輸出相似度最高的特征向量的個數。
    ? recip_scale: 數據的量化參數Scale的數據。
    ? pos:數據的量化參數Position的數據。
    o input_tensors:輸入數據的描述符,個數必須為2。第一個張量代表查詢向量,形狀為 [m, k, 1, 1]。第二個張量代表庫向量,形狀為 [k, n, 1, 1]。
    輸出:
    o output_tensors:輸出數據的描述符個數必須為3,第一個張量代表查詢向量與所有庫向量的相似度,形狀為 [m, n, 1, 1]。第二個張量代表前topk個內積相似度的值,形狀為 [m, topk, 1, 1]。第三個張量代表前topk個內積相似度的索引,形狀為 [m, topk, 1, 1]。
    ? 規格限制
    無。
    Grid Sample
    ? 功能描述
    此算子需要輸入一個input以及對應的flow-filed網格,比如光流、體素流等,根據流場grid中每個位置提供的坐標信息(這里指input中的pixel坐標),將input中對應位置的像素值雙線性插值到grid指定的位置,得到最終輸出。
    支持型號:MLU270和MLU220系列。
    ? 參數限制
    輸入:
    o Param參數結構體包括:
    ? batch_size:輸入batch的數目。
    ? channels:輸入c維度的大小。
    ? input_width:輸入width的大小。
    ? input_height:輸入height的大小。
    ? output_width:輸出width的大小。
    ? output_height:輸出height的大小。
    o input_tensors:包含兩個tensor,存放順序為:
  14. 輸入tensor,layout為[N,H_in,W_in, C]。
  15. grid tensor,layout為[N,H_out,W_out,2]。
    輸出:
    o output_tensors:輸出tensor,共一個,layout為[N,H_out, W_out,C]。
    ? 規格限制
    o 支持float和half兩種數據類型,但是精度會隨著輸入shape的增長而下降,因此建議使用float模式(half模式與float模式性能一致,且精度較差)。
    o float模式:支持1080P以下常用規模,channels需要小于30,batch_size需要小于15。
    o half模式:不建議使用。
    Gru
    ? 功能描述
    GRU (Gated Recurrent Unit) 是 LSTM 網絡的一種效果很好的變體,算子根據時間循環,每個時間片對 input 和 state 分別進行三次矩陣乘和激活,計算得到新的 state,作為下一個時間片的state。同時支持多層與雙向功能。
    支持型號:MLU220和MLU270系列。支持pytorch。
    ? 參數限制
    輸入:
    o Param參數結構體包括:
    ? batch:輸入的 N 維度大小。
    ? time:輸入的 T 維度大小。
    ? input_size:輸入的 C 維度大小。
    ? hidden_size:state 和輸出的 C 維度大小。
    ? algo:計算模式。
    ? num_layer:層數。
    ? layout:數據擺放格式。取值1表示NTC;取值0表示TNC。
    o input_tensors:是一組輸入數據的描述符,存放順序為:
  16. 輸入數據維度為[batch, time, input_size]。
  17. 隱藏層的描述,維度為[num_layer, batch, hidden_size]。
  18. 權重的描述符,其順序為[num_layer, bidirectional, 6]。
  19. 張量的偏移,其順序和權重順序相同。
    o gru_static_tensors:用于存儲權重量化的poition和scale參數。
    輸出:
    o output_tensors:三個輸出數據的描述符,第一個是workspace描述符,第二個為每個時間片的輸出,規模為[batch, time, bi * hidden_size],第三個為每層每個方向最后一個的state,規模為[num_layer, bi * hidden_size],其中bi = is_bidirectional ? 2 : 1。
    ? 規格限制
    o 對于time或者num_layer太大有可能導致累積誤差過大,精度越界的問題。
    Lstm
    ? 功能描述
    LSTM是一類用于處理序列數據的神經網絡,它解決了傳統神經網絡不能從數據中共享位置的特征的問題。
    支持型號:MLU270系列。支持pytorch。
    ? 參數限制
    輸入:
    o Param參數結構體包括:
    ? t_max:最大RNN輸入輸出序列的長度。
    ? n:輸入輸出序列的數量。
    ? input_size:輸入張量的大小。
    ? hidden_size:隱藏層的大小。
    ? layer_num:堆疊層的數量。
    ? direction:選擇的循環模式(0表示單向網絡,1表示輸出壓縮在一層)。
    ? bias_mode:RNN偏移向量的數據。
    ? x_order:RNN輸入數據的順序。
    ? y_order:RNN輸出輸入的順序。
    ? x_qt:RNN輸入數據量化的數據類型。
    ? x_pos:RNN對應輸入數據類型的量化參數position。
    ? x_scale:RNN對應輸入數據類型的量化參數scale。
    ? hx_qt:隱藏層的量化數據類型(目前僅支持與RNN輸入數據量化類型相同)。
    ? hx_pos:隱藏層的量化參數position。
    ? hx_scale:隱藏層的量化參數scale。
    o input_tensors:一個tensor數組,數組個數為五個或四個(無bias時為四個)。
    o static_tensors:一個tensor數組,個數為兩個,第一個只支持為整形,第二個只支持為浮點型。
    輸出:
    o output_tensors:一個tensor數組,個數為四個。數據類型只支持浮點型。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o Weight bytes = qtp_dw * 4 * ALIGN_UP(hidden, 64) * (ALIGN_UP(hidden, 64) + ALIGN_UP(vector_size, 64)) <= 4MB。
    o ALIGN_CI = (128 / out_dw) >= (64 / qtp_dw) ? (128 / out_dw) : (64 / qtp_dw)。 當權重大小小于1M時,需要滿足:
    o 374KB <= n * (CEIL_ALIGN(hidden_size, ALIGN_CI) * (out_dw + qtp_dw) +
    o CEIL_ALIGN(vector_size, ALIGN_CI) * (out_dw + qtp_dw) +
    o CEIL_ALIGN(hidden_size, ALIGN_CO) * (out_dw * 6))
    o + 8 * CEIL_ALIGN(hidden_size, ALIGN_CO) * out_dw。
    當權重大小大于1M且小于4M時,需要滿足:
    temp = CEIL_ALIGN(CEIL_ALIGN(hidden_size, 64) / 64, 4) / 4。
    374KB <= batch * (temp * (out_dw + qtp_dw) +
    ALIGN_UP(vector_size, 64) * (out_dw + qtp_dw) +
    temp * (out_dw * 6)) + 8 * temp * out_dw < 374KB。
    Mean Std
    ? 功能描述
    對于輸入進行減均值除方差。
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o input_tensors:輸入數據的描述符,個數必須為1,形狀是[n,h,w,c]。
    o static_tensors: 輸入的常量數據描述符,個數為2。第一個代表均值,形狀是[1, 1, 1, c * 64]。第二個代表方差,形狀是[1, 1, 1, c * 64]。
    輸出:
    output_tensors:輸出數據的描述符個數必須為1,形狀為 [n, h, w, c],
    ? 規格限制
    o 輸入數據是UINT8的時候,(w + 64) * c < 224 * 1024。
    o 輸入數據是INT16的時候,(w + 64) * c < 112 * 1024。
    Mean Variance Normalize
    ? 功能描述
    按照一定規則計算輸入數據的均值和方差,并使用均值和方差對相應的數據進行歸一化。該算子相較于普通的歸一化,不使用訓練時學習到的mean和std,而是使用輸入數據的mean和std進行歸一化。
    支持型號:MLU270系列和MLU220系列,使用的核數必須是4。
    ? 參數限制
    o across_channels:是否分通道進行歸一化。當取值為0是,對每一個通道的數據進行歸一化,當取值為1時,對整個batch的數據進行歸一化。當前僅支持取值為0。
    輸入:
    o input_tensor:四維非零張量,輸入數據的描述符。數據類型必須是UINT8,數據排布順序必須是NCHW。
    輸出:
    o output:輸出數據的描述符。維度和輸入張量相同的輸出張量,數據類型必須是FLOAT32,數據排布順序必須是NHWC。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 256 <= h * w <= 57600。
    o h * w * c < 524288。
    Mish
    ? 功能描述
    Yolov4特有算子,等價于x*tanh(ln(1+exp(x)))。
    支持型號:MLU270系列。支持TensorFlow。
    ? 參數限制
    參數
    o len:輸入數據長度。
    o data_type:輸入數據類型,2表示half,4表示float。
    o core_version:硬件平臺。
    o precision_level: 算子精度水平,可設置0和1,默認是0。
    輸入:
    o input_tensor:任意維度非零張量。
    輸出:
    o output:維度等于輸入維度的輸出張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入張量任意維度非零。
    Nms
    ? 功能描述
    MXNet框架NMS (Non Maximum Suppression)算子。對監測網絡中bounding box進行預選框的篩選。
    根據overlap_thresh和valid_thresh來對score降序排列的前K個items進行NMS操作。
    支持型號:MLU270系列。支持MXNet。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    o input:輸入數據。一個3維張量。形狀為[batch_size, num_items, item_size]。其中每個item中必會包含box坐標和score,也可能包含class_id和其他元素。
    o tmp_buff:存放中間結果的張量,形狀為(num_items, topk)。
    o score_buff:存放中間結果的張量,形狀為(core_num * ALIGN_SIZE)。
    o batch_size(n):batch數。
    o num_items?:每個batch中item個數。
    o item_size(h):每個item中元素個數,最大支持16個。
    o overlap_thresh:IOU閥值。
    o valid_thresh:分數閥值,會篩選出大于該閥值的item。
    o topk:按分數排序,選取前k個,進行NMS操作。
    o coord_start:box坐標開始的下標,box坐標應該是連續存放的。
    o score_index:score下標。這里的下標都是在item中的下標。
    o id_index:class_id下標。
    o background_id:背景的class_id。
    o force_suppress:bool類型。設為True時,會對所有item進行NMS操作。設為False時,只會對同種類別的item進行NMS操作。
    o in_format:輸入box坐標數據格式。
    o out_format:輸出box坐標數據格式。0表示corner(xmin,ymin,xmax,ymax),1表示center(x, y, w, h)。
    輸出:
    o output:輸出數據。一個3維張量。與輸入數據有相同形狀。每個batch前面有效數據是篩選后留下的數據,其余部分置位-1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o item_size不可超過16。
    Non Max Suppression
    ? 功能描述
    按照參數scores的降序來選擇邊界框的子集。
    支持型號:MLU220和MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    o boxes:一個2維張量,描述輸入的box。
    o scores:一個1維張量,描述輸入的score。
    o len:一個整型值,表示輸入box數量。
    o max_num:一個整型值,表示可以利用NMS選中的最大邊框數。
    o iou_threshold:一個float值,表示選中框的IOU閾值。
    o score_threshold:一個float值,表示選中框的分數閾值。
    輸出:
    一個描述選中框索引的一維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    OneHot
    ? 功能描述
    One-Hot編碼算子,用N位狀態寄存器對N個狀態進行編碼。
    支持型號:MLU220和MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    o indices:需要進行編碼的目標張量。
    o N、H、W、C:indices的維度信息。
    o depth:編碼的深度。
    o onvalue:編碼的開值。
    o offvalue:編碼的閉值。
    o axis:輸出矩陣的擴充軸。
    輸出:
    o 編碼之后的張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 最高支持四維輸入。
    Op Tensor
    ? 功能描述
    用于進行簡單雙目類型的計算。
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? alpha1: input1的標量縮放系數。
    ? alpha2: input2的標量縮放系數。
    ? beta: output的標量縮放系數,該算子的輸出矩陣同時也作為輸入使用。
    ? op_type: 用于指定算子模式的標志位,0:加法模式;1:減法模式;2:乘法模式。
    o input_tensors: 輸入數據的描述符,個數必須是3,前兩個分別為兩個形狀一致的輸入矩陣 (即input1,input2)。最后一個輸入矩陣用于儲存上述兩個輸入數據的形狀,即形狀為 [4,1,1,1]的向量,按照NCHW的順序進行儲存。
    輸出:
    o output_tensors: 輸出數據的描述符,個數必須是1,形狀必須和兩個輸入矩陣相同。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入數據支持float32/float16。
    o 輸入輸出張量的元素個數分別不能超過UINT32數據的上界。
    Pad
    ? 功能描述
    pad算子的功能是將給定值填充到張量外圍,其中張量擴展大小是由paddings參數指定的。paddings是形狀為[n,2]的整數張量,其中n為張量的秩。對于輸入的每個維度dim,paddings[dim, 0]表示的是在張量的dim維度的前端添加的數值個數。paddings[dim, 1]表示的是在張量的dim維度的后端添加的數值個數。因此輸出的第k維大小是:paddings[k,0] + tensor.dim_size(k) + paddings[k,1]。
    支持型號:MLU220和MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    o input_tensor:一個N維的的張量,1-8維。
    o paddings(dims,2):一個2維const tensor,dims和input_tensor的dims保持一致。
    輸出:
    o output_tensor:維度和input_tensor保持一致。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Post Process Rpn
    ? 功能描述
    根據rpn的輸出生成region proposal的算子,實現過程如下:
  20. 將輸入的anchor解碼,得到cy cx h w。
  21. 根據box encoding微調 解碼后的anchor坐標。
  22. 計算修正后的框的最大最小值,刪掉面積為0的框。
  23. 對分數做softmax。
  24. 去掉softmax后物體概率小于0.01的框。
  25. 剩下的框即是輸出。
    支持型號:MLU220和MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    o rpn_box_encodings_batch:描述bounding box的張量。
    o rpn_objectness_predictions_with_background_batc:預測前景和背景的分數值。
    o anchors:描述anchor的張量。
    o tmp_tensor:用于在MLU上分配臨時空間的張量。
    輸出:
    o proposal_box:輸出張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Proposal
    ? 功能描述
    根據anchor和feat map經過NMS操作得到框。
    兩個主要輸入anchors和feat map:
    o anchors是anchor generators算子的輸出。對于一個固定網絡,anchors是常數,所以也可以用CPU生成后作為const張量傳入。
    o feat map一般是從卷積中得到,包含對anchor的微調信息。
    實現過程如下:
  26. feat map經過解碼得到對x、y、w、h 的微調信息。
  27. 將微調信息應用到anchors上得到算子輸出。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    o param:ProposalOp參數結構體。
    o cnml_input_tensor:兩個四維張量組成的數組:
    ? bbox:batch_size,AHW, 1, 4。
    ? score:batch_size,AHW, 1, 4。
    輸出:
    o cnml_output_tensor:兩個四維張量組成的數組,
    o 第一個是算子的正式輸出:batch_size,nms_num, 1, 5
    o 第二個是算子使用的臨時空間:batch_size,AHW * 6, 1, 1
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    PS ROI Pool
    ? 功能描述
    position sensitive的roi pooling算子。該算子接收代表score與bbox的特征圖以及對應的ROI信息,對于每一個ROI,輸出一個由所有grid cell平均池化的結果堆疊而來的特征圖。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    PluginPsRoiPoolOp參數結構體:
    o proposal_input_tensors:一組四維張量,長度為2。輸入張量bbox的形狀是batchNum,AWH, 1, 4、ROI框的形狀是[batch_num, num_rois, rois_offset, 1]。支持類型是FLOAT16。
    輸出:
    o proposal_output_tensors:一組四維張量,形狀是batchNum * num_rois, outputdim, pooled_height, pooled_width。如果需要轉數輸出,那么就需要初始化該向量的position和scale。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回。
    Pyramid ROI Align
    ? 功能描述
    根據rois的面積,對roi進行分級,不同級的roi選擇不同的feature輸入進行CropAndResize操作。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    參數
    o batch_size:當前實現僅支持batch_size=1。
    o roi_nums:roi框的數量。
    o roi_cols:表示每個roi框所使用的數字個數。
    o features_channel:輸入特征的channel數。
    o feature_1_height和feature_1_width:第一個特征張量的height和width。
    o feature_2_height和feature_2_width:第二個特征張量的height和width。
    o feature_3_height和feature_3_width:第三個特征張量的height和width。
    o feature_4_height和feature_4_width:第四個特征張量的height和width。
    o image_meta_len:描述輸入圖片的元數據長度。
    o crop_height和crop_width:crop框的height和width。
    o data_type:輸入數據的字節數,取值2代表half,取值4代表float。
    輸入:
    o boxes:存儲roi框的張量,形狀是(batch_size, roi_nums, roi_cols]。
    o input_image_meta:存儲描述圖片元數據的張量,形狀是(1,14)。
    ? 形狀為[0]:表示圖片ID。
    ? 形狀為[1:4):表示原始圖片形狀。
    ? 形狀為[4:7):表示圖片形狀。
    ? 形狀為[7:11):表示圖片窗口。
    ? 形狀為[11):表示規模。
    ? 形狀為[12:]:表示前景類別序號。
    o featrue_map_fp1:一共四組feature輸入,該輸入保存第一組feature,形狀是(batch_size, feature_1_height, feature_1_width, feature_channels)。
    o featrue_map_fp2:一共四組feature輸入,該輸入保存第二組feature,形狀是(batch_size, feature_2_height, feature_2_width, feature_channels)。
    o featrue_map_fp3:一共四組feature輸入,該輸入保存第三組feature,形狀是(batch_size, feature_3_height, feature_3_width, feature_channels)。
    o featrue_map_fp4:一共四組feature輸入,該輸入保存第四組feature,形狀是(batch_size, feature_4_height, feature_4_width, feature_channels)。
    輸出:
    輸出形狀是(batch_size, roi_nums, crop_heitght, crop_width, feature_channels)的一個四維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回。
    ? 規格限制
    當前實現僅支持batch_size等于1。
    Range
    ? 功能描述
    創建數字序列。
    支持型號:MLU220和MLU270系列。支持TensorFlow。
    ? 參數限制
    輸入:
    輸入為三個張量,維度為都為1:
    o start:序列范圍的起始值。
    o limit:序列上限。
    o delta:遞增start的數字。
    輸出:
    o 生成序列的一維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Refine Detections
    ? 功能描述
    篩選出每個類別得分最高的框,然后對得分最高的框進行校準。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    參數
    o batch_size:int類型,目前只支持取值為1。
    o num_boxes:int類型,表示框的數量。
    o num_classes:int類型,表示類別數量。
    o meta_length:int類型,表示輸入圖片的元數據長度。
    o box_std0:float類型,標準差。校準框時乘的一個系數。
    o box_std1:float類型,標準差。校準框時乘的一個系數。
    o box_std2:float類型,標準差。校準框時乘的一個系數。
    o box_std3:float類型,標準差。校準框時乘的一個系數。
    o data_type:int類型,表示輸入的數據類型。取值2代表half,取值4代表float。
    o core_num:int類型,表示可用的硬件核數。
    o core_version:硬件平臺。
    輸入:
    o boxes:候選框,形狀是[batch_size,num_boxes,4]。
    o probs:候選框對應類別得分,形狀是[batch_size,num_boxes,num_classes]。
    o delta boxes:候選框的偏移值,形狀是[batch_size,num_boxes,num_classes,4]。
    o image_meta:圖片元數據,形狀是[batch_size,14]。
    ? 形狀為[0]:表示圖片ID。
    ? 形狀為[1:4):表示原始圖片形狀。
    ? 形狀為[4:7):表示圖片形狀。
    ? 形狀為[7:11):表示圖片窗口。
    ? 形狀為[11):表示規模。
    ? 形狀為[12:]:表示前景類別序號。
    輸出:
    o output_boxes:輸出框,形狀是[batch_size,num_classes,num_boxes,4]。
    o output_probs:形狀是[batch_size,num_classes,num_boxes]。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    當前實現僅支持batch_size等于1。
    Reflection Pad
    ? 功能描述
    鏡像補pad操作,基于PyTorch中的同名接口的實現。
    支持型號:MLU220和MLU270系列。支持PyTorch。
    ? 參數限制
    參數
    o core_version:硬件平臺。
    o n:int類型,輸入的batch數。
    o c:int類型,輸入的通道數。
    o h:int類型,輸入的高度。
    o w:int類型,輸入的寬度。
    o pad_left:int類型,左邊補pad的大小。
    o pad_right:int類型,右邊補pad的大小。
    o pad_top:int類型,上面補pad的大小。
    o pad_bottom:int類型,下面補pad的大小。
    o dtype:int類型,表示輸入的數據類型。0表示half類型,1表示float類型。
    輸入:
    o input_tensor:一個四維張量,各個維度均為非零正整數。
    輸出:
    o output_tensor:一個四維張量,各個維度均為非零正整數,輸出張量的周圍會帶上通過pad_left,pad_right,pad_top,pad_bottom四個參數定義的pad數據。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。如果返回異常,則以下兩種條件至少有一種沒有滿足:
    ? 規格限制
    輸出的通道co和寬度wo:
    o float 類型:wo * co < 1024 * 112
    o half類型:wo * co <1024 * 224
    Residual In Residual
    ? 功能描述
    RCAN超分網絡的ResidualInResidual模塊的融合算子,融合了兩個ResidualInResidual模塊。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    ? input0_pos: conv0輸入數據的Position量化參數。
    ? input1_pos: conv1輸入數據的Position量化參數。
    ? input2_pos: conv2輸入數據的Position量化參數。
    ? input3_pos: conv3輸入數據的Position量化參數。
    ? post_pos: 算子輸出數據的Position量化參數。
    ? weight0_pos: conv0權值數據的Position量化參數。
    ? weight1_pos: conv1權值數據的Position量化參數。
    ? weight2_pos: conv2權值數據的Position量化參數。
    ? weight3_pos: conv3權值數據的Position量化參數。
    ? input0_scale: conv0輸入數據的Scale量化參數。
    ? input1_scale: conv1輸入數據的Scale量化參數。
    ? input2_scale: conv2輸入數據的Scale量化參數。
    ? input3_scale: conv3輸入數據的Scale量化參數。
    ? post_scale: 算子輸出數據的Scale量化參數。
    ? weight0_scale: conv0權值數據的Scale量化參數。
    ? weight1_scale: conv1權值數據的Scale量化參數。
    ? weight2_scale: conv2權值數據的Scale量化參數。
    ? weight3_scale: conv3權值數據的Scale量化參數。
    ? post_cvt: 用于表示是否進行輸出數據量化的標志位,0:不進行輸出量化;1:進行輸出量化。
    ? relu_mode: 用于表示激活函數類型的標志位,目前僅支持0,即ReLU激活函數。
    o input_tensors:輸入數據的描述符,包含的描述符個數必須是2。第一個描述符代表輸入數據, 形狀為【N H W 64】,順序是NHWC。第二個描述符代表輸入數據的形狀,形狀為【4 1 1 1】, 并按照NHWC的順序儲存輸入張量的形狀數據。
    o static_tensors: 靜態數據的描述符,包含的描述符個數必須是8。其中第一,三,五, 七個描述符代表conv0到conv3的權值,形狀均為【64 3 3 64】,順序是NHWC。第二,四,六, 八個描述符代表conv0-conv3的偏置,形狀均為【1 1 1 64】,順序是NHWC。
    輸出:
    o output_tensors:輸出數據的描述符,個數必須是1。形狀為【N H W 64】的張量。形狀必須和輸入張量相同。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    ? 偏置:數據類型為float16,形狀必須為[1 1 1 64]。
    ? 輸出:輸出數據類型為float16。
    ? 輸入和輸出:H和W維度都必須大于等于16。H維度必須小于等于1080, W維度必須小于等于1920。C維度必須是64。
    ? 權重:形狀必須是[64 3 3 64]。
    Resize
    ? 功能描述
    對四通道圖片RGBA等進行resize。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    o param:輸入參數結構體。
    o cnml_input_ptr:一組描述原始圖像的四維張量。
    輸出:
    o cnml_output_ptr:一組描述處理后圖像的四維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。如果返回異常,則以下兩種條件至少有一種沒有滿足:
    o param與輸入張量一致。
    o 輸入張量沒有滿足YUV420SP格式。
    ? 規格限制
    o 輸入圖像的寬度不超過4,096像素。
    o 輸出圖像的寬度不超過2,048像素。
    o 放大模式下的倍率不超過50。
    Resize Yuv To Rgba
    ? 功能描述
    接受YUV圖片(420SP),先轉換成RGBA,再調整到指定大小后輸出。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    o param:輸入參數結構體:
    ? s_row:原圖像的高(V1接口有效)。
    ? s_col:原圖像的寬(V1接口有效)。
    ? d_row:目標圖像的高。
    ? d_col:目標圖像的寬。
    ? roi_x:roi左上角x坐標(V1接口有效)。
    ? roi_y:roi左上角y坐標(V1接口有效)。
    ? roi_w:roi的寬度(V1接口有效)。
    ? roi_h:roi的高度(V1接口有效)。
    ? mode:輸入YUV圖像的格式。
    ? batchNum:圖像數量。
    ? keepAspectRatio:圖像縮放時是否保持縱橫比(V2、V3接口有效)。
    ? padMethod:圖像縮放保持縱橫比是,邊界填充的模式,0為兩邊填充邊界,1為右邊或下邊填充邊界(V3接口有效)。
    o cnml_input_ptr:一組描述原始圖像的四維張量:
    o 描述原始圖像Y通道數據的四維張量。
    o 描述原始圖像UV通道數據的四維張量。
    o 描述原始圖像尺寸的四維張量(V2接口有效)。
    o 描述原始圖像roi坐標的四維張量(V2接口有效)。
    輸出:
    o cnml_output_ptr:一組描述處理后圖像的四維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。如果返回異常,則以下兩種條件至少有一種沒有滿足:
    o param與輸入張量一致。
    o 輸入張量沒有滿足YUV420SP格式。
    ? 規格限制
    o 輸入圖像的寬度不超過8,192像素。
    o 輸出圖像的寬度不超過2,048像素。
    o roi的右側邊界不應該超過原圖像的寬度。
    o roi的下方邊界不應該超過原圖像的高度。
    o 在橫向放大倍數不應該超過64。
    Resize Yuv To Yuv
    ? 功能描述
    調整Yuv420SP_NV12/NV21格式圖片的大小。
  28. 接收任意數量的圖片的指針并讀取數據。
  29. 通過雙線性插值將圖片調整到指定大小,支持放大和縮小功能。
  30. 將輸出的圖片按照輸入時的順序連續儲存至DDR的給定位置。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    輸入:
    o y_ptr:一組代表了輸入圖片Y通道數據的指針。指針指向的地址空間并不需要連續。Y通道數據的順序必須和UV通道數據的順序一一對應。
    o uv_ptr:一組代表了輸入圖片UV通道數據的指針。指針指向的地址空間并不需要連續。UV通道數據的順序必須和Y通道數據的順序一一對應。
    o s_col:輸入圖片的寬度,必須為8像素對齊。
    o s_row:輸入圖片的高度,必須為8像素對齊。
    o d_col:輸出圖片的寬度,必須為8像素對齊。
    o d_row:輸出圖片的高度,必須為8像素對齊。
    o batch_num:圖片的張數。
    輸出:
    dst_ptr:一整塊連續排布的數據塊,大小為 batch_num * d_col * d_row。
    cnmlCreatePluginResizeYuvToYuvOp_V2和cnmlCreatePluginResizeYuvToYuvOpParam_V3接口支持算子的放大和縮小功能:
    o 輸入:
    ? param:cnmlPluginResizeAndColorCvtParam_t參數結構體
    ? cnml_input_ptr:5個四維度張量組成的數組,大小都是[batchNum, 1, ,1 ,1],
    ? Ysrc_gdram:用于存儲Y通道輸入數據的二級指針,第一維度是batchId,第二維度是每一個batch的Y通道的數據。
    ? UVsrc_gdram:用于存儲UV通道輸入數據的二級指針,第一維度是batchId,第二維度是每一個batch的UV通道的數據。
    ? srcWH_gdram:用于存儲原始圖片的寬度和高度的數據的二級指針,第一維度為batchId,第二維度兩個數分別是當前batch的width,heigth
    ? roiRect_gdram:用于存儲roi描述的二級指針,第一維度為batchId,第二維度為roi_x,roi_y, roi_w, roi_h(每一個batch可以有多個roi)
    o 輸出:
    ? Ydst_gdram:用于存儲Y通道結果的二級指針,第一維度是batchId,第二維度是每一個batch的Y通道的結果
    ? UVdst_gdram:用于存儲UV通道結果的二級指針,第一維度是batchId,第二維度是每一個batch的Y通道的結果
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 不支持單核情況下運行,最小粒度為1個集群(cluster)。
    o 由于YUV格式的限制,圖片的長寬必須都是偶數,roi_x和roi_y也必須是偶數。
    o roi的右側邊界不應該超過原圖像的寬度。
    o roi的下方邊界不應該超過原圖像的高度。
    o 目前V1和V2接口只支持down scale,有效圖片的有效寬度應小于4096,且只支持MLU270。V3接口支持放大,最大放大61倍,支持MLU220和MLU270。
    o 在一些規模下,如果MLU端用half存儲小數部分,CPU端用double存儲小數部分,會導致雙線性插值的權重計算精度有一定的誤差,最終導致部分像素點結果有所誤差。
    Retina Detection Output
    ? 功能描述
    Retina網絡后處理算子。
  31. 接收坐標、類別、置信度這三個輸入張量及其形狀參數。
  32. 將相應位置的數據解碼成邊界框的坐標。左上角位置的XY坐標以及框的長寬。
  33. 算子對解碼后生成的邊界框進行非極大值抑制即NMS操作。將不符合要求的邊界框篩除,并輸出剩余的邊界框。
    支持型號:MLU220和MLU270系列。支持Pytorch。
    ? 參數限制
    參數
    o num_rois:輸入ROI的數量。
    o spatial_scale:原始圖片與特征圖的比值。
    o channels:特征圖通道數。
    o height:特征圖高度。
    o width:特征圖寬度。
    o pooled_height:輸出池化后的高度。
    o pooled_width:輸出池化后的高度。
    o sampling_ratio:每個池化單元劃分的格子數。
    o roi_cols:一個ROI單元長度。
    o batch_size:輸入特征圖batch值。
    輸入:
    o input_tensors:四維輸入張量,ROIS為2維張量。
    輸出:
    o output_tensor:4維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ROI Align
    ? 功能描述
    對region of interest (ROI)區域做雙線性插值,然后進行最大池化操作。
  34. ROI數據形狀是 [batch_size, rois_num, 1, roi_cols], 或者 [batch_size, roi_cols, rois_num, 1]。其中roi num表示一個batch經過proposal后生成候選框的個數;roi_cols包含框的x1、y1、x2、y2(可能是經過歸一化的)。
  35. 從ROI中獲取的框的坐標在特征圖上均分為畫成pooled_height、pooled_width大小的區域,對區域內的值做雙線性插值,然后進行最大池化操作得到算子的輸出。
    支持型號:MLU220和MLU270系列。支持PyTorch。
    ? 參數限制
    輸入:
    o param:RoiPoolOp參數結構體。
    o roiPool_input_tensors:兩個四維張量組成的數組,一個形狀是batch_size, channels, height, width。另一個形狀是batch_size, rois_num, 1, roi_cols。支持FLOAT32 和 FLOAT16。
    o roiPool_output_tensors:一組四維張量,形狀是batch_size * rois_num, channels, pooled_height, pooled_width。
    輸出:
    指向BaseOp的指針。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 當前只支持batch=1。
    ROI Align For Fpn
    ? 功能描述
    根據rois的面積,對roi進行分級,對不同級的rois區域分別做雙線性插值,然后進行max pooling。最后得到一組尺度統一的歸一化后的特征圖。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    o channels: 輸入特征圖的通道數。
    o pooled_height: 輸出池化后的高度。
    o pooled_width: 輸出池化后的寬度。
    o sampling_ratio: 每個池化單元劃分的格子數。
    o num_rois: 輸入的roi的數量。
    o roi_offset: 每個roi的尺寸,目前必須是4。roi表示形式為[x1,y1,x2,y2]。
    o batch_size: batch size大小。
    o canonical_scale: roi正則面積,用于劃分每個roi屬于哪一級的特征圖。由網絡訓練時得到的參數。
    o canonical_level: roi正則級數,用于劃分每個roi屬于哪一級的特征圖。由網絡訓練時得到的參數。
    o num_level: 輸入的特征圖的級數,根據官網模型文檔和該算子接口設計,最大不能超過7。
    o img_h: 輸入圖片的高度。
    o img_w: 輸入圖片的寬度。
    輸入:
    o input_tensors: 輸入數據的描述符,個數為num_level加1:
    ? 前num_level個為不同級數的特征圖, 形狀分別是[batch_size, channels, H(n), W(n)],n為第幾級的特征圖。
    ? 最后一個為rois, 形狀為[batch_sizenum_rois, roi_offset, 1, 1]。
    o static_tensors: 輸入的常量數據描述符,個數為1。該常量數據表示了每個級數的特征圖的寬高信息。形狀為[1, num_level
    2, 1, 1],數據排布是[h1, w1, h2, w2, …, hn, wn]。
    輸出:
    o output_tensors: 輸出數據的描述符,個數為1。形狀為 [batch_size * rois_num, channels, pooled_height, pooled_width]。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ROI Pool
    ? 功能描述
    對region of interest區域進行最大池化,實現過程如下:
    o roi數據的形狀為[batch_size, rois_num, 1, roi_cols]。其中roi_num表示一個batch經過proposal后生成候選框的個數,roi_cols包含框的x1 y1 x2 y2(可能是經過歸一化的)。
    o 從roi中獲取的框的坐標在feature map上均分為pooled_height、pooled_width大小的區域,進行最大池化得到算子的輸出。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    o param:RoiPoolOp參數結構體。
    o roiPool_input_tensors:兩個四維張量組成的數組,一個形狀是batch_size, channels, height, width。另一個形狀是batch_size, rois_num, 1, roi_cols。支持FLOAT32 和 FLOAT16。
    o roiPool_output_tensors:一組四維張量,形狀是batch_size * rois_num, channels, pooled_height, pooled_width。
    輸出:
    指向BaseOp的指針。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ROI Pool For Fpn
    ? 功能描述
    多尺度RoIPooling。用于特征金字塔網絡(FPN),對不同尺度中感興趣區域(region of interest)進行最大池化(max pooling)。
  36. roi數據形狀是 [batch_size, rois_num, 1, roi_cols],其中roi_num表示一個batch經過proposal后生成候選框的個數,roi_cols包含框的x1、y1、x2、y2(可能是經過歸一化的)。
  37. 根據roi坐標信息計算出其對應尺度的特征圖(feature map)。
  38. 將roi中獲取的框的坐標在上一步中所得到的feature map上均分為畫成pooled_height和pooled_width大小的區域,進行最大池化得到算子的輸出。
    支持型號:MLU270系列。支持PyTorch。
    ? 參數限制
    輸入:
    o param:RoiPoolForFpnOp參數結構體。
    o roiPoolForFpn_input_tensors:八個四維張量組成的數組。前七個張量的形狀是batch_size, channels, height, width。不同尺度對應不同的height和width,最多支持7個尺度輸入。另一個形狀是:batch_size, rois_num, 1, roi_cols。支持FLOAT32和FLOAT16數據類型。
    o roiPoolForFpn_static_tensors:兩個四維張量組成的數組。一個張量用于存放圖像信息,形狀是[batch_size, 3, 1, 1]。另一個張量存放多尺度feature map的高和寬,形狀是[1, 2 * num_level, 1, 1]。
    輸出:
    o roiPool_output_tensors:一組四維張量,形狀是batch_size * rois_num, channels, pooled_height, pooled_width。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Scatter
    ? 功能描述
    將src中的數據根據index中的索引按照dim方向填進輸入中。
    支持型號:MLU220和MLU270系列。支持PyTorch。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? core_version:運行的硬件平臺。
    ? input_n:輸入input的batch。
    ? input_h:輸入input的height。
    ? input_w:輸入input的width。
    ? input_c:輸入input的channel。
    ? index_n:輸入index的batch。
    ? index_h:輸入index的height。
    ? index_w:輸入index的width。
    ? index_c:輸入index的channel。
    ? src_n:輸入src的batch。
    ? src_h:輸入src 的height。
    ? src_w:輸入src的width。
    ? src_c:輸入src的channel。
    ? axis:scatter的參數表示軸。
    ? scalar:表示src是否是標量。src是表示標量,設置為1。否則設置為0。
    ? dtype:輸入的類型。支持的值:
    ? 1:表示float32。
    ? 0:表示float16。
    o input_tensors:輸入數據的描述符,個數必須是1。
    輸出:
    output_tensors:輸出數據的描述符,個數必須是1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入的index類型是int32, 輸入input和src是float32或float16。
    o 輸入和輸出的tensor_shape為NHWC。。
    SR Basic Block
    ? 功能描述
    輸入特征地圖、權值以及量化參數,輸出新的特征地圖。支持輸入可變。
    支持型號:MLU270系列。支持PyTorch。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? weight_tensor:輸入權值的描述符。
    ? weight_float:輸入權值的數據,類型是FLOAT32。
    ? bias_tensor:輸入偏置的描述符。
    ? bias_tensor:輸入偏置的數據,類型是FLOAT32。
    ? input_pos_tensor:輸入數據的量化參數Position的描述符。
    ? input_pos:輸入數據的量化參數Position的數據。
    ? input_scale_tensor:輸入數據的量化參數Scale的描述符。
    ? input_scale:輸入數據的量化參數Scale的數據。
    ? weight_pos_tensor:權值數據的量化參數Position的描述符。
    ? weight_pos:權值數據的量化參數Position的數據。
    ? weight_scale_tensor:權值數據的量化參數Scale的描述符。
    ? weight_scale:權值數據的量化參數Scale的數據。
    o input_tensors:輸入數據的描述符,個數必須是1。
    輸出:
    output_tensors:輸出數據的描述符,個數必須是1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入數據形狀必須是[N 64 360 640](對應NCHW)。
    o 輸入權值的形狀必須是[64 64 3 3],[64 64 3 3],[64 4 1 1],[4 64 1 1](對應NCHW)。
    SR Last Block
    ? 功能描述
    基于某公司超分辨率網絡模型的一部分編寫而成的算子。
    輸入特征地圖、權值以及量化參數,輸出新的特征地圖。
    S實現網絡中最后的conv+add+deconv模塊。實現運算:
    output = deconv(conv(input1, weight1) +input2, weight2)
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? weight_tensor:輸入權值的描述符,個數必須是3。
    ? weight_float:輸入權值的數據,類型是FLOAT32。
    ? bias_tensor:輸入偏置的描述符,個數必須是3。
    ? bias_tensor:輸入偏置的數據,類型是FLOAT32。
    ? input_pos_tensor:輸入數據的量化參數Position的描述符。
    ? input_pos:輸入數據的量化參數Position的數據。
    ? input_scale_tensor:輸入數據的量化參數Scale的描述符。
    ? input_scale:輸入數據的量化參數Scale的數據。
    ? weight_pos_tensor:權值數據的量化參數Position的描述符。
    ? weight_pos:權值數據的量化參數Position的數據。
    ? weight_scale_tensor:權值數據的量化參數Scale的描述符。
    ? weight_scale:權值數據的量化參數Scale的數據。
    ? num_conv:由于deconv會被拆成2個conv,所以num_of_conv必須為3。
    ? batch_num:輸入的batch大小。
    ? hi:輸入的height大小。
    ? wi:輸入的width大小。
    ? ho:輸出的height大小。
    ? wo:輸入的width大小。
    o input_tensors:輸入數據的描述符,個數必須是2。
    輸出:
    output_tensors:輸出數據的描述符,個數必須是1。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o weight的權值大小固定[co, kh, kw ,ci]:
    [64, 3, 3, 64 ]
    [128, 3, 3, 64 ]
    [128, 3, 3, 64 ]
    o bias大小固定分別為:64、128、128。
    o ho = 2 * hi并且wo = 2 * wi。
    o wi <= 1096。
    SSD Detection Output
    ? 功能描述
    Ssd網絡后處理算子,實現過程如下:
  39. 接收坐標、類別、置信度這三個輸入張量及其形狀參數。
  40. 將相應位置的數據解碼成邊界框的坐標,左上角位置的xy坐標以及框的長寬。
  41. 最后算子會對解碼后生成的邊界框進行非極大值抑制(NMS操作),將不符合要求的邊界框篩除,并輸出剩余的邊界框。
    支持型號:MLU220和MLU270系列。僅支持Caffe和Pytorch框架。
    ? 參數限制
    輸入:
    o inputs:一組ssd的輸入張量,維度是四維,形狀為batchNum, (5 + classNum) * numMaskGroup, inputH, inputW。目前僅支持FLOAT16類型。
    o ssd_static_tensors:當標志位 CONST_PRIOR_TENSOR 的值為真時,用戶需要在計算前設置 ssd_static_tensors 參數的值為prior_tensor,否則 ssd_static_tensors 參數會被設為空指針。prior_tensor包括priorbox和variance。
    輸出:
    outputs:
    o 一組yolov3的輸出張量,維度是四維,形狀是 batchNum, 64 + 7 * numMaxBox, 1, 1。
    o 僅支持FLOAT16類型。
    o 每個batch的前兩個數字存儲檢框的個數,每個檢測框的數據從輸出張量中每個batch的第65個數字開始,以[batchId, classId, score, x1, y1, x2, y2]的順序存儲,(x1, y1) 和(x2, y2)代表左上和右下檢測框的坐標值。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Topk
    ? 功能描述
    獲取每一個Batch的前k個最大值以及該數據在原始數據中對應的下標,最大值按照從大到小的順序進行排列。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? batch_size:輸入的batch數。
    ? channels:每一個batch中channel的個數。
    ? topk_num:每一個batch中選出前topk_num個最大值。
    ? topk_data_type:表述數據輸入類型,0:float32,1:float16。
    ? topk_index_type: 輸入數據下標的類型,0:int32,1:uint32。
    o input_tensors:輸入數據的描述符,個數必須是1,只包含輸入數據,數據維度只有NC。
    o static_tensors:輸入的數據下標描述符,個數必須是1包含輸入數據的下標,每一個batch都是從[0,1,…,channels-1]。
    輸出:
    o output_tensors:輸出數據的描述符,個數必須是2。其中的一個tensor為每一個batch中前topk_num個最大值。另一個tensor為每一個最大值對應在原始數據中的下標,兩個tensor的維度必須都是NC。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。如果返回異常,則以下至少有一種沒有滿足:
    o param與輸入張量一致。
    o input_tensors的個數為1。
    o static_tensors個數為1。
    o output_tensors個數為2。
    o topk_num <= channels。
    o channels大于等于1,小于int32的最大數據表示范圍。
    ? 規格限制
    o batch_size支持任意非零整數。
    o channels支持任意非零整數。
    Transformer Enc Attn
    ? 功能描述
    Transformer或Bert網絡中的self-atten模塊,通俗稱為注意力層。實現運算如下:
  42. 生成QKV向量,QKV分別為Query、Key、Value,例如:
    x=input,w=weight Q = matmul(x,w) K、V類似。
  43. 計算attention score:Z=QK^T。
  44. 歸一化得分:S=softmax(Z)。
  45. Z歸一化得分去聯合Value:P=matmul(S, transpose(V))。
  46. 尾部接全連接層:F=FullyConnect§。
  47. 后置layernorm歸一化:Result = Layernorm§。
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o cnml_static_ptr:一組描述輸入權值的四維張量,具體如下:
    ? 0-layernormbias。
    ? 1-layernormscale。
    ? 2-QKV權值偏置。
    ? 3-尾部權值偏置。
    ? 4-Q權值。
    ? 5-K權值。
    ? 6-V權值。
    ? 7-尾部權值。
    o cnml_intput_ptr:一組描述輸入數據的四維張量,其中0-輸入,1-mask輸入。
    o query_factor:Q因子系數。
    o Normalization:是否進行layernorm,0不進行,1進行。
    o batch_size:輸入batch數。值必須大于0。
    o token:token數目,支持值在[1, 128]區間內。
    o seq_len:詞典長度,僅支持512。
    o dim_k:K向量維度,僅支持64。
    o dim_v:V向量維度,僅支持64。
    o head_size:頭部數據,僅支持8。
    o q_weight_pos:Q權值量化pos值。
    o k_weight_pos:K權值量化pos值。
    o v_weight_pos:V權值量化pos值。
    o out_fc_weight_pos:尾部權值量化pos值。
    o q_weight_scale:Q權值量化scale值。
    o k_weight_scale:K權值量化scale值。
    o v_weight_scale:V權值量化scale值。
    o out_fc_weight_scale:尾部權值量化scale值。
    o MASK:是否進行詞典掩蓋,0不進行,1進行。
    o is_input_quant:輸入是否量化。
    o is_input_online_quant:輸入是否在線量化。
    o qkv_online_quant:qkT結果是否在線量化。
    o isZout_online_quant:softmax dot v結果是否在線量化。
    o qkv_out_type:QKV輸出類型。
    輸出:
    cnml_output_ptr:一組描述處理后數據的四維張量。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    Transformer FFN
    ? 功能描述
    Transformer或Bert網絡中的FFN模塊。實現運算如下:
    Y=active(X*W1+b1)*W2+b2
    active的激活類型一般包括ReLU和GELU。
    該算子中還集成了layernorm,包括前置layernorm和后置layernorm。
    后置運算為:Y=Layernorm(X + FFN(X))
    前置運算為:Y=X+FFN(Layernorm(X))
    支持型號:MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體:
    ? batch_num:batch數量。支持任意非零整數。
    ? seq_len:句子長度。支持任意非零整數。
    ? hidden_size:編碼向量長度。支持值為256、512、768、1024。
    ? filter_size:FFN中間擴維長度。支持值為1024、2048、4096、5120、6144、7168、8192。
    ? online_quantify:是否采用在線量化。
    ? output_quantify:輸出是否提前轉數。
    ? add_flag:前置layernorm時后面是否采用相加操作。
    ? active_mode:激活函數類型。
    ? layernorm_mode:采用什么形式的layernorm。
    ? input_quantify_pos:輸入數據的pos量化參數。
    ? input_quantify_scale:輸入數據的scale量化參數。
    ? inter_quantify_pos:中間結果的pos量化參數。
    ? inter_quantify_scale:中間結果的scale量化參數。
    ? output_quantify_pos:輸出結果的pos量化參數。
    ? output_quantify_scale:輸出結果的scale量化參數。
    ? inter_weights_quantify_pos:內側權值的pos量化參數。
    ? inter_weights_quantify_scale:內側權值的scale量化參數。
    ? outer_weights_quantify_pos:外側權值的pos量化參數。
    ? outer_weights_quantify_scale:外側權值的scale量化參數。
    o cnml_input_ptr:一組描述輸入數據的四維張量。描述輸入句子的四維張量[batch_num, seq_len, hidden_size]。
    輸出:
    cnml_output_ptr:一組描述輸出數據的四維張量。描述輸入句子的四維張量[batch_num, seq_len, hidden_size]。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。返回為異常值的時候,至少有一下兩種中的一種情況沒有滿足:
    o param與輸入張量一致。
    o 輸入張量沒有滿足YUV420SP格式。
    ? 規格限制
    o batch_num支持任意非零整數。
    o seq_len支持任意非零整數。
    o hidden_size支持256、512、768、1024。
    o filter_size支持1024、2048、3072、4096、5120、6144、7168、8192。
    Warp Affine
    ? 功能描述
    對輸入張量進行仿射變換(warp-affine),輸入為輸入張量以及仿射變換矩陣,輸出為仿射變換后的張量。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    輸入:
    o param:輸入參數結構體,包括:
    ? src:輸入張量數據。
    ? mat:仿射變換矩陣。
    ? batch_size:輸入的batch數。
    ? dst_h:輸出圖片的高。
    ? dst_w:輸出圖片的寬。
    ? src_h:輸入圖片的高。
    ? src_w:輸入圖片的寬。
    ? c:輸入圖片以及輸出圖片的通道數。
    輸出:
    dst:輸出tensor數據。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    輸入和輸出數據類型必須為uint8_t類型。輸入和輸出的tensor_shape為NHWC。仿射矩陣的數據類型為float32。
    Yolov2 Detection Output
    ? 功能描述
    Yolov2網絡后處理算子:
  48. 接收包含坐標、類別對應置信度、objscore和bias這些信息的輸入張量及其形狀參數。
  49. 將相應位置的數據解碼成邊界框的坐標。即bbox的中心點坐標和bbox的寬度與高度。
  50. 算子會對解碼后生成的邊界框進行非極大值抑制(NMS操作)。將不符合要求的邊界框篩除,并輸出剩余的邊界框。
  51. 算子支持輸入的特征圖寬度和高度不同。
    支持型號:MLU220和MLU270系列。支持Caffe。
    ? 參數限制
    輸入:
    o paramYolov2DetectionOutput:參數結構體。
    o inputs:Yolov2的輸入四維張量,形狀是 batchNum,5widthheight , 1,5 + classNum,支持FLOAT32和FLOAT16。
    輸出:
    o outputs:兩個四維張量,分別為:
    ? outputs[0]:yolov2的輸出四維張量,形狀是batchNum, 256, 1, 7。每個batch存儲在7256長度的數據塊中:
    ? 0
    256范圍內存放batch id。
    ? 1256范圍內存放class id。
    ? 2
    256范圍內存放confidence。
    ? 3256范圍內存放xc。
    ? 4
    256范圍內存放yc。
    ? 5256范圍內存放w。
    ? 6
    256范圍內存放h。
    ? outputs[1]:臨時空間,維度四位,形狀是batchNum, anchornum * width * height, 1, (paramnum + 5)。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    使用share memory的時候,默認每個核計算decode box之后數量不多于256個框。如果空間不夠,可以通過宏文件里面的 SM_BOSNUM_PER_CORE 來配置大小。
    Yolov3 Detection Output
    ? 功能描述
    yolov3網絡后處理算子,實現過程如下:
  52. 接收不超過七個的輸入張量及其形狀參數。
  53. 將相應位置的數據解碼成邊界框的坐標,左上角位置的xy坐標以及框的長寬。
  54. 最后算子會對解碼后生成的邊界框進行非極大值抑制(NMS操作)。將不符合要求的邊界框篩除,并輸出剩余的邊界框。
    支持型號:MLU220和MLU270系列。支持Caffe和PyTorch。
    ? 參數限制
    輸入:
    paramYolov3DetectionOutput 參數結構體:
    o inputs:一組yolov3的輸入張量,維度是四維,形狀是 batchNum, (5 + classNum) * numMaskGroup, inputH, inputW,目前僅支持FLOAT16類型。
    輸出:
    o outputs:一組yolov3的輸出張量,維度是四維,形狀是batchNum, 64 + 7 * numMaxBox, 1, 1,目前僅支持FLOAT16類型。每個batch的第一個數字存儲檢框,每個檢測框的數據從第65個數字開始,以[batchId, classId, score, x1, y1, x2, y2]的順序存儲,(x1, y1) 和(x2, y2)代表左上和右下檢測框的坐標值。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入張量的HW乘積之和不超過32,768。
    o 輸入張量使用相同數量的anchor。
    o 輸入的confidence_thresh可以篩去絕大部分的非物體邊界框。
    o 輸入輸出張量的數據類型支持FLOAT16和FLOAT32。
    Yolov5 Detection Output
    ? 功能描述
    yolov5網絡后處理算子,實現過程如下:
  55. 接收不超過七個的輸入張量及其形狀參數。
  56. 將相應位置的數據解碼成邊界框的坐標,左上角位置的xy坐標以及框的長寬。
  57. 最后算子會對解碼后生成的邊界框進行非極大值抑制(NMS操作)。將不符合要求的邊界框篩除,并輸出剩余的邊界框。
    支持型號:MLU220和MLU270系列。支持Caffe和PyTorch。
    ? 參數限制
    輸入:
    paramYolov5DetectionOutput 參數結構體:
    o inputs:一組yolov5的輸入張量,維度是四維,形狀是 batchNum, (5 + classNum) * numMaskGroup, inputH, inputW,目前僅支持FLOAT16類型。
    輸出:
    o outputs:一組yolov5的輸出張量,維度是四維,形狀是batchNum, 64 + 7 * numMaxBox, 1, 1,目前僅支持FLOAT16類型。每個batch的第一個數字存儲檢框,每個檢測框的數據從第65個數字開始,以[batchId, classId, score, x1, y1, x2, y2]的順序存儲,(x1, y1) 和(x2, y2)代表左上和右下檢測框的坐標值。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    o 輸入張量的HW乘積之和不超過32,768。
    o 輸入張量使用相同數量的anchor。
    o 輸入的confidence_thresh可以篩去絕大部分的非物體邊界框。
    o 輸入輸出張量的數據類型支持FLOAT16和FLOAT32。
    Yuv To Rgb
    ? 功能描述
    接收yuv圖片(420SP),輸出RGBA等四通道類型的圖片。
    支持型號:MLU220和MLU270系列。
    ? 參數限制
    輸入:
    o param:PluginYuvToRgbOp參數結構體。
    o yuv2rgb_input_tensors:一組四維張量,形狀是batchNum, channelIn, rows, cols,支持類型是FLOAT16和UINT8。
    輸出:
    o outputs:一組四維張量,形狀是batchNum, channel, rows, cols,支持類型是FLOAT16和UINT8。
    返回值:
    正常返回值是CNML_STATUS_SUCCESS,其他為異常返回值。
    ? 規格限制
    輸入圖像寬度不超過32,768像素。

總結

以上是生活随笔為你收集整理的AI算子列表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。