返回

CornerNet环境配置指南:PyTorch 1.2 & CUDA 9.2

人工智能

在 Ubuntu 系统上为 PyTorch 1.2 配置 CornerNet

简介

CornerNet 是一款出色的目标检测模型,以其速度快和准确率高而著称。它最初是为 PyTorch 0.4.0 开发的。然而,随着 PyTorch 升级到 1.0 及更高版本,一些 C++ 和 CUDA API 发生了变化,导致在使用较新版本的 PyTorch 时编译 CornerNet 出现问题。本文将指导您在基于 CUDA 9.2 和 PyTorch 1.2 的 Ubuntu 系统上配置 CornerNet。

步骤指南

1. 安装 CUDA 9.2 和 cuDNN 7.6.5

  • 从 NVIDIA 官网下载 CUDA 9.2 和 cuDNN 7.6.5。
  • 按照安装指南进行安装。

2. 安装 PyTorch 1.2

  • 使用 pip 命令安装 PyTorch 1.2:
pip install torch torchvision

3. 下载 CornerNet 源代码

  • 从 GitHub 下载 CornerNet 源代码:
git clone https://github.com/princeton-vl/CornerNet.git

4. 修改 CornerNet 源代码

为了与 PyTorch 1.2 兼容,需要修改以下 C++ 和 CUDA 代码:

  • 在文件 src/model/corner_pool.cpp 中,将以下代码:
#include <THC/THC.h>

修改为:

#include <torch/cuda.h>
  • 在文件 src/model/corner_pool.cu 中,将以下代码:
THCudaCheck(cudaLaunchKernel(kernel, grid, block, args, sharedMem, stream));

修改为:

torch::launch_kernel(kernel, grid, block, args, sharedMem, stream);

5. 编译 CornerNet 代码

  • 使用 CMake 和 make 命令编译 CornerNet 代码:
cd CornerNet
mkdir build
cd build
cmake ..
make

6. 安装 CornerNet 依赖库

  • 使用 pip 命令安装 CornerNet 依赖库,例如 NumPy 和 OpenCV:
pip install numpy opencv-python

运行 CornerNet

完成上述步骤后,即可运行 CornerNet:

  • 训练模型:
python train.py
  • 测试模型:
python test.py

结论

通过按照本文的指南,您已成功在 Ubuntu 系统上基于 CUDA 9.2 和 PyTorch 1.2 配置 CornerNet。您可以将 CornerNet 应用于您的目标检测项目,提升模型的准确率和速度。

常见问题解答

  1. 为什么需要修改 CornerNet 源代码?

PyTorch 1.0 及更高版本中 C++ 和 CUDA API 的更改会导致与 PyTorch 0.4.0 编写的 CornerNet 代码不兼容。

  1. 使用较旧版本的 PyTorch 会不会更简单?

尽管使用较旧版本的 PyTorch 可能更简单,但我们建议使用较新版本以获得最新功能和性能改进。

  1. 是否必须使用 CUDA 9.2?

CUDA 9.2 是 PyTorch 1.2 要求的 GPU 计算库版本。

  1. 能否使用其他目标检测模型?

除了 CornerNet,还有许多其他出色的目标检测模型可用,例如 YOLOv5 和 Faster R-CNN。

  1. 在哪里可以获得 CornerNet 模型的预训练权重?

CornerNet 模型的预训练权重可以在 Princeton Vision and Learning Lab 网站上找到。