3D毫米波雷达-RF图目标检测算法RODNet代码复现-基于Docker环境

RODNet算法Docker运行环境建立步骤


code:https://github.com/yizhou-wang/RODNet?tab=readme-ov-file

1. 安装 Docker 和 NVIDIA 容器工具

# 安装 Docker(Ubuntu 示例)
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 安装 NVIDIA 容器工具(支持 GPU)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install nvidia-docker2
sudo systemctl restart docker
1. 安装 NVIDIA 容器工具

bash
# 添加 NVIDIA 容器工具仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 安装 nvidia-docker2
sudo apt-get update
sudo apt-get install -y nvidia-docker2

​2. 配置 Docker 使用 NVIDIA 运行时

编辑 Docker 配置文件 /etc/docker/daemon.json,确保包含以下内容:

json

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
}

​3. 重启 Docker 服务

bash

sudo systemctl daemon-reload
sudo systemctl restart docker
---

### **2. 下载 CUDA 10.1 + PyTorch 1.4 镜像**
```bash
docker pull pytorch/pytorch:1.4-cuda10.1-cudnn7-devel

3. 准备数据集

CRUW 数据集说明 下载并组织数据目录:

/data/cruw
├── annotations
├── calib
├── sequences
└── ...

4. 启动容器并挂载数据/代码

# 创建并进入容器
docker run -it --gpus all \
  -v /path/to/RODNet:/workspace/RODNet \
  -v /data/cruw:/data/cruw \
  --workdir /workspace/RODNet \
  pytorch/pytorch:1.4-cuda10.1-cudnn7-devel

5. 容器内安装依赖

# 安装 cruw-devkit
git clone https://github.com/yizhou-wang/cruw-devkit.git
cd cruw-devkit
pip install .
cd ..

# 安装 RODNet(使用 TDC)
pip install -e .

安装遇到的问题
ERROR: Command errored out with exit status 1: /opt/conda/bin/python -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘"’"’/workspace/RODNet/setup.py’“'”‘; file=’“'”‘/workspace/RODNet/setup.py’“'”‘;f=getattr(tokenize, ‘"’“‘open’”’“‘, open)(file);code=f.read().replace(’”‘"’\r\n’“'”‘, ‘"’"’\n’“'”‘);f.close();exec(compile(code, file, ‘"’“‘exec’”’"‘))’ develop --no-deps Check the logs for full command output.

问题原因:错误 Unknown CUDA arch (8.6) or GPU not supported 表明你的 GPU 计算能力(Compute Capability)为 ​8.6​(例如 NVIDIA RTX 30 系列显卡),但 RODNet 的 CUDA 编译配置未包含此架构支持。PyTorch 1.4 默认的 CUDA 10.1 工具链不支持 Ampere 架构(计算能力 8.x),需手动添加支持。

解决:# 在 setup.py 中找到 CUDA 扩展配置部分(例如 make_cuda_ext 函数)
def make_cuda_ext(name, module, sources):
return CUDAExtension(
name=f’{module}.{name}‘,
sources=[os.path.join(*module.split(’.‘), src) for src in sources],
extra_compile_args={
‘cxx’: [],
‘nvcc’: [
‘-D__CUDA_NO_HALF_OPERATORS__’,
‘-gencode’, ‘arch=compute_86,code=sm_86’, # 添加 Ampere 架构支持
‘-gencode’, ‘arch=compute_70,code=sm_70’, # 保留原有支持
‘-gencode’, ‘arch=compute_75,code=sm_75’,
‘–compiler-options’, "’-fPIC’"
]
}
)


6. 数据预处理

# 生成 .pkl 文件
python tools/prepare_dataset/prepare_data.py \
  --config configs/config_rodnet_hg1v2_win16_s4.yaml \
  --data_root /data/cruw \
  --split train,test \
  --out_data_dir data/cruw_processed
python tools/prepare_dataset/prepare_data.py --config configs/
config_rodnet_hg1v2_win16_mnet.py --data_root data/ROD2021/cruw --split train,test --out_data_dir data/ROD2021/

生成的数据pkl示意


7. 训练模型

python tools/train.py \
  --config configs/config_rodnet_hg1v2_win16_s4.yaml \
  --data_dir data/cruw_processed \
  --log_dir checkpoints/

python tools/train.py --config configs/config_rodnet_hg1v2_win16_mnet.py --data_dir data/data_pkl --log_dir checkpoints/exp1/


8. 推理测试

python tools/test.py \
  --config configs/config_rodnet_hg1v2_win16_s4.yaml \
  --data_dir data/cruw_processed \
  --checkpoint checkpoints/rodnet-hg1v2.pth \
  --res_dir results/

关键说明

  1. 数据持久化
    -v /data/cruw:/data/cruw 将本地数据集挂载到容器内,-v /path/to/RODNet:/workspace/RODNet 挂载代码。

  2. GPU 支持验证
    容器内运行 nvidia-smi 应显示 GPU 信息。

  3. 环境隔离
    所有操作在容器内完成,避免污染本地环境。

  4. 结果保存
    训练后的模型(checkpoints/)和推理结果(results/)会保存在挂载的本地目录。


常见问题处理

  1. 缺少系统依赖
    容器内安装所需工具:

    apt-get update && apt-get install -y libgl1-mesa-glx
    
  2. CUDA 版本冲突
    确保镜像使用 pytorch/pytorch:1.4-cuda10.1-cudnn7-devel

  3. 数据集路径错误
    检查 --data_root 参数是否指向容器内的 /data/cruw


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值