ubuntu20.04深度学习环境配置(LC-视觉)
环境配置
conda下载以及安装
1.下载anconda和pychram可百度
下载anconda,后缀为.sh的安装包
进入下载目录,运行:
bash Anaconda3-2021.11-Linux-x86_64.sh
回车键,进入注册信息页面
按q跳过阅读,输入yes
默认安装在用户目录下,直接回车即可安装;若想自定义安装目录,直接输入安装目录,回车即可。
Do you wish the installer to initialize Anaconda3 by running conda init ? 输入 no,回车
安装完成
Thank you for installing Anaconda3!
===========================================================================
Working with Python and Jupyter notebooks is a breeze with PyCharm Pro,
designed to be used with Anaconda. Download now and have the best data
tools at your fingertips.
PyCharm Pro for Anaconda is available at: https://www.anaconda.com/pycharm
环境变量修改:
vim ~/.bashrc
将下面内容添加到最后:(路径改为自己的)
export PATH="/home/zzh/anaconda3/bin:$PATH"
更新资源:source ~/.bashrc
查看conda版本:conda -V
zzh@zzh:~/下载/软件$ conda -V
conda 4.10.3
2.创建虚拟环境
conda create -n <envname> <python版本>
如:创建名为yolo的python版本为3.8的环境
zzh@zzh:~$ conda create -n yolo python=3.8
conda env list
检查环境
zzh@zzh:~$ conda env list
conda environments:
base * /home/zzh/anaconda3
yolo /home/zzh/anaconda3/envs/yolo
base为系统环境,yolo为创建好的虚拟环境
进入虚拟环境conda activate <env name>
如:source activate
我们现进入到系统环境中,才能进入到虚拟环境
zzh@zzh:~$ source activatenvcc
(base) zzh@zzh:~$ conda activate yolo
(yolo) zzh@zzh:~$
conda deactivate
退出虚拟环境进入系统环境
(yolo) zzh@zzh:~$ conda安装cuda依赖库 deactivate
(base) zzh@zzh:~$
(base) zzh@zzh:~$ source deactivate
DeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'.
source deactivate
为退出系统环境
conda install <package name>
安装指定的包
conda list
显示所有的安装包
conda remove -n <env name> --all
删除指定环境中所有的包即删除环境
conda remove/clean <package name>
删除指定的包
conda --version
或者conda -V
查看conda 版本
conda upgrade conda
更新conda和其他所有包
pip安装包:
pip install <package name>
安装包
pip uninstall <package name>
卸载包
pip list
查看包
3.安装cuda以及cudnn(nuc中不带gpu可以省略这一步)
有显卡的可以查看显卡驱动用nvidia-smi
查看显卡驱动
CUDA Version 为显卡所支持的cuda版本(20系列向下全兼容,30系列只兼容11以上)
Tue Dec 28 04:50:48 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44 Driver Version: 495.44 CUDA Version: 11.5 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A |
| 0% 29C P8 25W / 170W | 546MiB / 12050MiB | 20% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1096 G /usr/lib/xorg/Xorg 242MiB |
| 0 N/A N/A 1441 G /usr/bin/gnome-shell 143MiB |
| 0 N/A N/A 2481 G /usr/lib/firefox/firefox 112MiB |
| 0 N/A N/A 3320 的 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 3468 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 9039 G ...AAAAAAAAA= --shared-files 13MiB |
| 0 N/A N/A 9231 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 9234 G /usr/lib/firefox/firefox 2MiB |
+-----------------------------------------------------------------------------+
cuda安装
下载cuda,选择你想要的版本,直接搜索cuda即可下载,3060显卡我选择cuda11.1
其他显卡可以直接按照
NVIDIA-SMI 495.44 Driver Version: 495.44 CUDA Version: 11.5
根据你的cuda Version选择你想用的版本,10系列或者16系列都有这所对应的cuda版本和对应的cuddn版本,可以参考官网上的一键安装教程,这里我自己选择安装。
可以按照官网的进行安装,也可以将安装包下载进行安装。
安装cuda依赖库
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
zzh@zzh:~/下载$ sudo sh cuda_11.1.0_455.23.05_linux.run
EUAL accept,Driver不安装
我们开始进行环境变量的配置
vim ~/.bashrc
末尾加入下面三行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
保存并退出:wq!
更新环境变量source ~/.bashrc
验证:nvcc -V
zzh@zzh:~/下载$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Tue_Sep_15_19:10:02_PDT_2020
Cuda compilation tools, release 11.1, V11.1.74
Build cuda_11.1.TC455_06.29069683_0
cuda安装成功
多cuda切换:
此种安装方式,是将*/usr/local的cuda文件链接到了对应cuda版本的根目录。输入以下命令可以查看当前cuda文件的链接情况:在/usr/local*下,我们可以安装多个版本的cuda
cd /usr/local/
stat cuda
命令行输入以下命令,断开cuda文件与cuda11.1的符号链接:
sudo rm -rf cuda
命令行输入以下命令,建立cuda文件与你想安装的cuda的符号链接:
sudo ln -s /usr/local/cuda-11.3.0 /usr/local/cuda
查看cuda版本更换成功
cudnn安装
tar -xzvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
解压cudnn包
zzh@zzh:~/下载$ tar -xzvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
随后在当前路径的命令行终端输入以下三条命令进行cudnn的安装:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
至此cuda与cudnn全部安装成功。
yolov5环境配置
虚拟环境搭建:(yolov5-6.0)环境通用
创建虚拟环境,进入虚拟环境:
source activate
conda activate yolo
yolo为之前创建好的虚拟环境
cd到你下载yolov5的目录下
pip install -r requirements.txt
科学上网后可以一键下载
但是我们所需要的pytorch和torchersion的版本是要对应cuda的,所以我们先去pytorch官网下载cuda版本的pytorhc,pytorch官网的pip下载后的wegt是有下载链接的可以直接进入网站去选择,选择依据如下:
首先查看虚拟环境里的包:
(yolo) zzh@zzh:~/yolo/yolov5-6.0$ pip list
Package Version
----------------------- ---------------------
absl-py 1.0.0
cachetools 4.2.4
certifi 2021.10.8
charset-normalizer 2.0.9
cycler 0.11.0
fonttools 4.28.5
google-auth 2.3.3
google-auth-oauthlib 0.4.6
grpcio 1.43.0
idna 3.3
importlib-metadata 4.10.0
kiwisolver 1.3.2
Markdown 3.3.6
matplotlib 3.5.1
numpy 1.21.5
oauthlib 3.1.1
opencv-python 4.5.4.60
packaging 21.3
pandas 1.3.5
pbr 5.8.0
Pillow 8.4.0
pip 21.2.4
protobuf 3.19.1
pyasn1 0.4.8
pyasn1-modules 0.2.8
pyparsing 3.0.6
python-dateutil 2.8.2
pytz 2021.3
PyYAML 6.0
requests 2.26.0
requests-oauthlib 1.3.0
rsa 4.8
scipy 1.7.3
seaborn 0.11.2
setuptools 58.0.4
six 1.16.0
tensorboard 2.7.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.0
testresources 2.0.1
thop 0.0.31.post2005241907
torch 1.10.1
torchvision 0.11.2
tqdm 4.62.3目的
typing_extensions 4.0.1
urllib3 1.26.7
Werkzeug 2.0.2
wheel 0.37.0
zipp 3.6.0
可以看到torch是1.10.2的torchvision是0.11.2的
我们在官网选择了
对应的cuda11的版本:
先将原来的torch和torchvision卸载
pip uninstall torchvision
pip uninstall torch
再cd到我们的下载目录,安装我们所用的torch和torchvision,可以选择低版本的我选1.8的torch和0.9的vision
pip install torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl
pip install torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl
检查一下,输入python目的
>> (yolo) zzh@zzh:~/下载$ python >> Python 3.8.12 (default, Oct 12 2021, 13:49:34) >> [GCC 7.5.0] :: Anaconda, Inc. on linux >> Type "help", "copyright", "credits" or "license" for more information. >> >>> import torch >> >>> torch.__version__ >> >>> '1.8.0+cu111' >> >>> exit()
即为成功exit()是退出python环境的
yolov5环境搭建完成
yolov5的训练(针对Robomaster)(其他数据集原理相同)
1.数据集选择:
数据集选择为上海交大的开源数据集,我将其命名为rmdata,放在yolov5的文件夹下面
zzh@zzh:~/yolo/yolov5-6.0$ tree -d
.
├── data
│ ├── hyps
│ ├── images
│ └── scripts
├── models
│ ├── hub
│ └── __pycache__
├── __pycache__
├── rmdata
│ ├── images
│ │ ├── test
│ │ └── train
│ └── labels
│ ├── test
│ └── train
├── runs
│ └── train
│ ├── exp
│ │ └── weights
│ └── exp2
│ └── weights
└── utils
├── aws
├── flask_rest_api
├── google_app_engine
├── loggers
│ ├── __pycache__
│ └── wandb安装
│ └── __pycache__
└── __pycache__
30 directories
2.训练
更改文件,对其进行训练,首先打开pycharm,设置python解释器为conda环境(刚配好的yolo虚拟环境)将data文件夹中的coco128.yaml再复制一份到data里,重命名为rm.yaml(名字随便起),内容为:
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017)
# Example usage: python train.py --data coco128.yaml
# parent
# ├── yolov5
# └── datasets
# └── coco128 ← downloads here
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
train: rmdata/images/train # train images (relative to 'path') 128 images
val: rmdata/images/test # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
nc: 36 # number of classes
names: ['BG', 'B1', 'B2', 'B3', 'B4', 'B5', 'BO', 'BS', 'BB', 'RG',
'R1', 'R2', 'R3', 'R4', 'R5', 'RO', 'RS', 'RB', 'NG', 'N1',
'N2', 'N3', 'N4', 'N5', 'NO', 'NS', 'NB', 'PG', 'P1', 'P2',
'P3', 'P4', 'P5', 'PO', 'PS', 'PB'] # class names
因为交标有36个。更改train部分的文件,指定权重文件为yolov5s.pt,在github中的yolov5里面找到yolov5s.pt进行下载放到yolov5文件夹里面。data改为rm.yaml,epoch不变为300轮训练,可以根据自己的训练情况去调整。
def parse_opt(known=False):
parser = argparse.ArgumentParser()
parser.add_argument('--weights', type=str, default=ROOT / 'yolov5s.pt', help='initial weights path')
parser.add_argument('--cfg', type=str, default='', help='model.yaml path')
parser.add_argument('--data', type=str, default=ROOT / 'data/rm.yaml', help='dataset.yaml path')
parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch.yaml', help='hyperparameters path')
parser.add_argument('--epochs', type=int, default=300)
不出意外的话,训练已经可以开始了,有报错的一般网上都有解决方法。
训练完成后的文件是这样的
3.验证
验证,找出赛场上的视频来,运行下面的命令:
weight
为你选择的权重文件,通常为训练后的best.pt
source
为选择的视频文件,source 0 表示从摄像头读取,目前只有6.0有该功能
detect.py
为执行文件,作为训练。
python detect.py --weights runs/exp1/weights/best.pt --source <视频地址>
可以输出视频流结果
这里只用了普通的yolo做训练,后续还要对yolo进行更改以达到实战目的。