from modelscope.pipelines import pipeline
from modelscope.outputs import OutputKeys
from modelscope.utils.constant import Tasks
import cv2
import torch.distributed as dist
if __name__ == '__main__':
# 初始化分布式环境
dist.init_process_group(backend='nccl')
# 获取当前进程的rank
rank = dist.get_rank()
wordsize = dist.get_world_size()
device_id = rank
portrait_enhancement = pipeline(Tasks.image_portrait_enhancement, device=f"cuda:{device_id}")
img = cv2.imread("face0_0.png")
result = portrait_enhancement(img)
执行运行脚本
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node 2 --master_port=25649 debug_modelscope.py
报错如下:
File "anaconda3/envs/fr/lib/python3.8/site-packages/modelscope/models/cv/face_generation/op/upfirdn2d.py", line 187, in upfirdn2d_native
out = F.conv2d(out, w)
RuntimeError: FIND was unable to find an engine to execute this computation
这个错误是由于在运行过程中,找不到可用的CUDA引擎来执行计算。你可以尝试以下方法解决这个问题:
确保你的显卡驱动是最新的,并且支持CUDA。你可以访问NVIDIA官网下载并安装最新的驱动。
检查你的CUDA版本是否与你的PyTorch版本兼容。你可以在PyTorch官方文档中查看支持的版本信息。
如果你使用的是虚拟环境,请确保你已经激活了正确的环境。你可以使用以下命令激活虚拟环境:
source activate your_environment_name
CUDA_VISIBLE_DEVICES=0 torchrun --nproc_per_node 2 --master_port=25649 debug_modelscope.py
根据您提供的错误信息,似乎是由于upfirdn2d
操作在运行时找不到对应的计算引擎,导致程序崩溃。以下是一些可能的解决方案:
upfirdn2d
操作无法找到对应的计算引擎。您可以使用以下命令检查您的PyTorch版本:python -c "import torch; print(torch.__version__)"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。