You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Colab运行Yolact++失败,编译DCNv2遇THC.h缺失问题

解决Yolact++在Google Colab编译DCNv2时的THC/THC.h缺失错误

问题原因

THC/THC.h是旧版PyTorch(1.7及更早)的CUDA头文件,PyTorch 1.8+已将THC模块整合到torch/csrc/cuda路径下,不再保留独立的THC目录。而Yolact仓库自带的external/DCNv2版本较旧,硬编码引用了旧路径,导致与你安装的PyTorch 1.11不兼容,出现编译失败。

解决方案

方案1:降级到兼容的PyTorch版本

安装仍保留THC头文件的PyTorch 1.7.1+cu110,适配原有DCNv2:

# 卸载现有PyTorch
!pip uninstall -y torch torchvision torchaudio

# 安装兼容版本
!pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

# 克隆Yolact仓库(若已克隆可跳过)
!git clone https://github.com/dbolya/yolact.git

# 编译DCNv2
%cd yolact/external/DCNv2
!python setup.py build develop

方案2:替换为适配新版PyTorch的DCNv2分支

直接替换旧版DCNv2为兼容PyTorch 1.8+的版本:

# 进入Yolact的external目录
%cd /content/yolact/external
# 删除旧DCNv2文件夹
!rm -rf DCNv2
# 克隆兼容新版PyTorch的DCNv2
!git clone https://github.com/CharlesShang/DCNv2.git
# 编译
%cd DCNv2
!python setup.py build develop

方案3:手动修改头文件引用

无需更换版本,直接修改DCNv2代码适配新路径:

  1. 打开/content/yolact/external/DCNv2/src/cuda/dcn_v2_cuda.cu,将第7行的#include <THC/THC.h>替换为:
#include <torch/csrc/cuda/THC/THC.h>
  1. 对/content/yolact/external/DCNv2/src/cpu/dcn_v2_cpu.cpp中所有THC相关引用做同样路径替换
  2. 重新编译:
%cd /content/yolact/external/DCNv2
!python setup.py build develop

优先推荐方案1或2,避免手动修改代码的潜在问题。

内容的提问来源于stack exchange,提问作者Dev Br

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:32:52