Torchvision Adapter提供Torchvision库在NPU设备上的适配,增加了对Torchvision所提供的常用算子的支持,提供基于cv2和基于昇腾NPU的图像处理加速后端以加速图像处理。
当前昇腾适配的版本要求Torchvision 0.9.1,PyTorch版本为1.8.1。
git clone https://github.com/pytorch/vision.git cd vision git checkout v0.9.1 # 编包 python setup.py bdist_wheel # 安装 cd dist pip3 install torchvision-0.9.*.whl # 不同环境下编译出的安装包名称有区别,请用户根据实际情况填写安装包名
即使用户在安装PyTorch时已经通过pip方式安装了Torchvision包,此处也需要进行编译安装Torchvision的步骤。
# 下载master分支代码,进入插件根目录 git clone -b master https://gitee.com/ascend/vision.git vision_npu cd vision_npu git checkout v0.9.1-dev # 安装依赖库 pip3 install -r requirement.txt # 编包 python setup.py bdist_wheel # 安装 cd dist pip install torchvision_npu-0.9.*.whl # 不同环境下编译出的安装包名称有区别,请用户根据实际情况填写安装包名
以Torchvision的torchvision.ops.nms算子为例。
# 算子的cuda/cpu版本调用 import torch import torchvision ... torchvision.ops.nms(boxes, scores, iou_threshold) # boxes 和 scores 为 CPU/CUDA Tensor
# 算子的npu版本调用 import torch import torch_npu import torchvision import torchvision_npu ... torchvision.ops.nms(boxes, scores, iou_threshold) # boxes 和 scores 为 NPU Tensor
Torchvision算子在NPU上支持列表如下。
算子 |
是否支持 |
---|---|
nms |
是 |
deform_conv2d |
是 |
ps_roi_align |
否 |
ps_roi_pool |
否 |
roi_align |
是 |
roi_pool |
是 |