下载obb代码之后,除了安装python和pytorch环境,由于还需要编译nms部分的c++代码,因此还需要安装Visual Studio.
这里推荐安装Visual Studio2019版本。
然后在系统环境中配置环境变量
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt_enclave\x64
然后cmd打开命令窗口,输入cl.exe,查看输出以下内容为Visual Studio2019安装成功。
可以写一段代码测试是否可以编译成功。
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
return 0;
}
// 官方用例
将以上内容保存在一个名称为main.cpp文本里面。然后当前命令框输入cl main.cpp进行编译。
出现以下报错fatal error C1034: iostream: 不包括路径集
这个一般是因为没有在c++的环境里面去运行,我们可以找到安装环境中的VsDevCmd.bat,找不到路径的可以使用Everything对路径进行查找。
然后将该文件直接拖到命令行里面,可以看到命令行环境就变化了。我这里是安装在D盘下。
直接拖进来
回车
出现以下内容就ok了,再输入刚刚的内容。
完成生成。
接下来是安装python pytorch和cuda的环境,这三者要相互对应,pytorch对应的如果安装的cuda11.1或cuda11.8就无法匹配相对于的nvidia的cuda了,然后我这里安装了cuda11.3,nvidia的cuda也是11.3
Nvidia的cuda下载地址:
CUDA Toolkit 12.3 Update 2 Downloads | NVIDIA Developer
选择历史版本:
下载好双击安装即可,这里选择自定义:
然后只选择cuda即可。
完成安装之后,我们cmd弹出的命令行输入nvcc -V查看是否安装好了cuda
这说明已经安装好了,版本cuda11.3
然后还要安装cudnn
cuDNN Archive | NVIDIA Developer
选择合适的cudnn
然后将里面的内容都复制到当前目录下,替换即可。
然后我们验证cudnn是否成功
复制完后,在当前目录下进入 extras -> demo_suite,可以看到有 bandwidthTest.exe 和 deviceQuery.exe
出现以上内容说明成功了。
也可以安装多个cuda只要注意在系统环境变量中开头的顺序即可。
然后pytorch的话我就安装了1.10.1版本的
地址:https://pytorch.org/get-started/previous-versions/
最后我们在以下代码界面打开cmd进行编译
命令窗口内输入
python setup.py build_ext --inplace
如果出现报错:ImportError: cannot import name 'obb_nms' from 'utils.nms_rotated'
一般是环境没安装正确,cuda版本对应不上。
然后解决之后,再运行,报
nvcc fatal : Unsupported gpu architecture 'compute_86'
说明计算机算力和cuda不匹配,我们可以在环境变量中设置算法。
比如
在系统环境变量中添加TORCH_CUDA_ARCH_LIST
我这里是30系列显卡,所以我值设置8.0
最后再运行
python setup.py build_ext --inplace
运行不报错即可。
最后我们训练模型也可以正常训练了。