下载
中文
注册

概述

本章节包含常用亲和库接口,提供模型中常用的组合类接口,无需自行完成接口或导入第三方库。

表1 torch_npu contrib API

API 名称

原生函数/参考链接

说明

(beta)torch_npu.contrib.npu_fused_attention_with_layernorm

-

bert自注意力与前层规范的融合实现。

(beta)torch_npu.contrib.npu_fused_attention

-

bert自我注意的融合实现。

(beta)torch_npu.contrib.Prefetcher

-

npu设备上使用的预取程序。

(beta)torch_npu.contrib.DCNv2

-

应用基于NPU的调制可变形2D卷积操作。ModulationDeformConv的实现主要是基于mmcv的实现进行设计和重构。

(beta)torch_npu.contrib.BiLSTM

-

将NPU兼容的双向LSTM操作应用于输入序列。

(beta)torch_npu.contrib.Swish

-

应用基于NPU的Sigmoid线性单元(SiLU)函数,按元素方向。SiLU函数也称为swish函数。

(beta)torch_npu.contrib.NpuFairseqDropout

-

在npu设备上使用FairseqDropout。

(beta)torch_npu.contrib.npu_giou

-

提供NPU版本的GIoU计算接口。

(beta)torch_npu.contrib.npu_ptiou

-

提供NPU版本的PTIoU计算操作。计算时不会为重叠区域添加极小值。

(beta)torch_npu.contrib.npu_iou

-

提供NPU版本的IoU计算操作。计算时会为重叠区域添加极小值,避免除零问题。

(beta)torch_npu.contrib.function.fuse_add_softmax_dropout

self.dropout()/nn.functional.softmax()/torch.add

使用NPU自定义算子替换原生写法,以提高性能。

(beta)torch_npu.contrib.function.npu_diou

def bboexs_diou()

应用基于NPU的DIoU操作。考虑到目标之间距离,以及距离和范围的重叠率,不同目标或边界需趋于稳定。

(beta)torch_npu.contrib.function.npu_ciou

def bboexs_giou()

应用基于NPU的CIoU操作。在DIoU的基础上增加了penalty item,并propose CIoU。

(beta)torch_npu.contrib.module.NpuCachedDropout

class FairseqDropout()

在NPU设备上使用FairseqDropout。

(beta)torch_npu.contrib.module.MultiheadAttention

class MultiheadAttention()

Multi-headed attention。

(beta)torch_npu.contrib.function.npu_single_level_responsible_flags

def single_level_responsible_flags()

使用NPU OP在单个特征图中生成锚点的responsible flags。

(beta)torch_npu.contrib.function.npu_bbox_coder_encode_xyxy2xywh

def encode()

应用基于NPU的bbox格式编码操作,将格式从xyxy编码为xywh。

(beta)torch_npu.contrib.function.npu_fast_condition_index_put

无原函数,主要功能语句:input1[condition] = value,请查看测试用例。

使用NPU亲和写法替换bool型index_put函数中的原生写法。

(beta)torch_npu.contrib.function.matmul_transpose

torch.matmul()

使用NPU自定义算子替换原生写法,以提高性能。

(beta)torch_npu.contrib.function.npu_multiclass_nms

def multiclass_nms()

使用NPU API的多类bbox NMS。

(beta)torch_npu.contrib.function.npu_batched_multiclass_nms

def fast_nms()

使用NPU API的批量多类bbox NMS。

(beta)torch_npu.contrib.function.roll

torch.roll()

使用NPU亲和写法替换swin-transformer中的原生roll。

(beta)torch_npu.contrib.module.Mish

class Mish()

应用基于NPU的Mish操作。

(beta)torch_npu.contrib.module.SiLU

class SiLu()

按元素应用基于NPU的Sigmoid线性单元(SiLU)函数。SiLU函数也称为Swish函数。

(beta)torch_npu.contrib.module.ChannelShuffle

def channel_shuffle()

应用NPU兼容的通道shuffle操作。为避免NPU上效率不高的连续操作,我们用相同语义重写替换原始操作。以下两个不连续操作已被替换:transpose和chunk。

(beta)torch_npu.contrib.module.LabelSmoothingCrossEntropy

class LabelSmoothingCrossEntropy()

使用NPU API进行LabelSmoothing Cross Entropy。

(beta)torch_npu.contrib.module.ModulatedDeformConv

class ModulatedDeformConv2dFunciton()

应用基于NPU的Modulated Deformable 2D卷积操作。

(beta)torch_npu.contrib.module.NpuDropPath

class DropPath()

使用NPU亲和写法替换swin_transformer.py中的原生Drop路径。丢弃每个样本(应用于residual blocks的主路径)的路径(随机深度)。

(beta)torch_npu.contrib.module.Focus

class Focus()

使用NPU亲和写法替换YOLOv5中的原生Focus。

(beta)torch_npu.contrib.module.PSROIPool

class PSROIPool()

使用NPU API进行ROIAlign。

(beta)torch_npu.contrib.module.ROIAlign

class ROIAlign()

使用NPU API进行ROIAlign。

(beta)torch_npu.contrib.module.FusedColorJitter

Reference 1Reference 2

随机更改图像的亮度、对比度、饱和度和色调。

(beta)torch_npu.contrib.function.npu_bbox_coder_decode_xywh2xyxy

def npu_bbox_coder_decode_xywh2xyxy()

应用基于NPU的bbox格式编码操作,将格式从xywh编码为xyxy。

(beta)torch_npu.contrib.function.npu_bbox_coder_encode_yolo

def npu_bbox_coder_encode_yolo()

使用NPU OP获取将bbox转换为gt_bbox的框回归转换deltas。

(beta)torch_npu.contrib.module.npu_modules.DropoutWithByteMask

-

应用NPU兼容的DropoutWithByteMask操作。

(beta)torch_npu.contrib.function.dropout_with_byte_mask

-

应用NPU兼容的dropout_with_byte_mask操作,仅支持npu设备。这个dropout_with_byte_mask方法生成无状态随机uint8掩码,并根据掩码做dropout。