Torchvision Adapter提供Torchvision库在NPU设备上的适配,增加了对Torchvision所提供的常用算子的支持,基于cv2和昇腾NPU加速图像处理。
当前昇腾适配的版本要求Torchvision 0.12.0,PyTorch版本为1.11.0。
git clone https://github.com/pytorch/vision.git cd vision git checkout v0.12.0 # 编包 python setup.py bdist_wheel # 安装 cd dist pip3 install torchvision-0.12.*.whl # 不同环境下编译出的安装包名称有区别,请用户根据实际情况填写安装包名
即使用户在安装PyTorch时已经通过pip方式安装了Torchvision包,此处也需要进行编译安装Torchvision的步骤。
# 下载master分支代码,进入插件根目录 git clone https://gitee.com/ascend/vision.git vision_npu cd vision_npu git checkout v0.12.0-dev # 安装依赖库,如果使用非root用户安装,需要在命令后加--user pip3 install -r requirement.txt # 编包 python setup.py bdist_wheel # 安装 cd dist pip install torchvision_npu-0.12.*.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 |
是 |