一、前言
由于公司项目支撑,近期需要做雷达图像的目标检测后融合。本篇博客详细介绍深度学习环境搭建,并跑通SFA3D。由于本机第一次搭建环境,这里先全部手动搭建,实际上在用Ananconda创建了python环境后,可以直接下载论文代码,论文中有脚本文件可直接一条龙安装,但在本人尝试过后,任然存在问题,下面记录了安装的问题。
二、硬件配置
机子:拯救者R9000P R7 5800H+3070
系统:ubuntu20.04LTS
三、开始安装
1. 安装Anaconda
根据代码作者提示环境运行在python3.6和PyTorch1.5版本下:
考虑到不同的python和PyTorch版本要求严格,为了防止出错反复重装环境的情况下,要先安装Anaconda来管理多版本python并存以及各种第三方包安装的问题。PyTorch暂且理解为一个python功能包,跟随着python的环境。
PyTorc介绍:pytorch简介_bestrivern的博客-CSDN博客_pytorch是什么
Anaconda的Linux版本官网地址
https://www.anaconda.com/products/individual
如果下载失败可以使用清华的镜像,进行下载
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=A
输入 bash Anaconda3-2021.05-Linux-x86_64.sh
对下载好的文件进行安装,安装过程一直按回车和yes
安装完成后在bashrc中添加默认的安装路径,然后source一下
export PATH="/home/jiusan/anaconda3/bin:$PATH"
source ~/.bashrc
如果你在一个桌面系统上安装 Anaconda,在终端输入anaconda-navigator
打开Navigator GUI
如果没有问题就算安装好了。
1.2 升级Anaconda和卸载Anaconda
还没实现过,可以参考如何在 Ubuntu 20.04 上安装 Anaconda - 云+社区 - 腾讯云
2.安装CUDA和cuDNN
安装完 Anaconda 后我们先不急搭建python环境,先安装与环境无关的CUDA驱动
CUDA是用于GPU加速运算的驱动和环境没有什么关系,cuDNN是由于支持显卡对深度学习网络的加速计算。
最新版本的CUDA
但建议直接安装CUDA10.1和cuDNN
CUDA10.1安装 参考:https://blog.csdn.net/feng98ren/article/details/108895582
安装完成后使用 nvidia-smi 或 nvcc -V查看cuda的版本,以后者为准
2.2CUDA降级
最开始在按照官方的推荐下安装了CUDA11.3,但是在代码运行上报了许多错误,当时了避免麻烦,选择退回到10.1版本。
参考:https://blog.csdn.net/feng98ren/article/details/108895582
三 安装Pytorch(版本要和cuda对应)
安装好上面的环境之后接下来我们要先新建一个python的环境
3.1 使用Anoconda新建环境
conda --version 获取版本号
conda info -e 查看当前一共有什么环境
conda create --name your_env_name python=3.7 创建环境并制定python版本(创建新环境的时候 要推出虚拟环境conda deactivate)
source activate 激活虚拟环境
conda activate your_env_name 进入选定的环境
如果每次打开新的终端都会进入base环境,这个可以在.bashrc中修改
3.2 进入环境后,在当前环境下安装pytorch
Pytorch是一个基于python的科学计算包,可以替代numpy(python的数学计算包)发挥GPU的计算能力,并提供了具有高度灵活性和高效率的深度学习实验平台
这是介绍安装1.5版本的 https://blog.csdn.net/zzq060143/article/details/88042075
官网:Previous PyTorch Versions | PyTorch
建议安装1.7版本的。
(如果已经安装别的版本的torch,可以直接输入这条命令,会自动卸载覆盖之前版本)
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
安装完后 进入Python环境输入:
import torch
print(torch.__version__)
查看安装版本确定是否安装完成
3.3 Anoconda的其他操作
conda deactivate 退出环境
conda remove --name your_env_name --all 删除某个环境
四 运行代码
到了这里就可以直接按照论文的步骤来执行,下面是在运行代码中遇到问题和解决方案
---------------------------------------------------------------------------------------------------------------------------------
错误总结:
运行代码时发生错误:ModuleNotFoundError: No module named 'cv2
解决办法:pip install opencv-python
运行代码时发生错误:
cv2.error: OpenCV(4.5.2) :-1: error: (-5:Bad argument) in function 'line'
in drawRotatedBox,Can't parse 'pt1'. Sequence item with index 0 has a wrong type
解决办法:line里面的参数要整形化int()
运行代码时候发生错误:RuntimeError: CUDA error: no kernel image is available for execution on the driver
解决办法:直接升级成1.7的pytorch(对于本次实验,直接安装这个1.7,安装成1.5会报错)
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
先安装了CUDA11.3然后退回到CUDA10.1,但是nvidia-smi任然显示11.3,在nvcc -V的命令中显示10.1
这是正常的,在大多数情况下,如果
nvidia-smi
报告的 CUDA 版本在数值上等于或高于 报告的版本,nvcc -V
则无需担心。这是 CUDA 中定义的兼容性路径(较新的驱动程序/驱动程序 API 支持“较旧的”CUDA 工具包/运行时 API)。例如,如果nvidia-smi
报告 CUDA 10.2 并nvcc -V
报告 CUDA 10.1,则通常无需担心。它应该可以正常工作,并不一定意味着您“在打算安装 CUDA 10.1 时实际上安装了 CUDA 10.2”参见Different CUDA versions shown by nvcc and NVIDIA-smi - Stack Overflow解释
附上成功的结果: