道路车流监测(1):环境安装
文章目录
前言
最近实习真的太忙了,领导不停的push我-。-
同时又面临着毕业要准备论文。再加上一个家里的比赛推不掉的那种。所以想了想还是重操旧业吧,要把cv拿起来。这次会更新一个系列,来记录自己准备这个比赛的项目过程。希望有始有终。在网上找了一个还不错的代码。用cpu跑出来感觉效果差了点,所以想用gpu试试看,无奈cuda版本太老不支持了,所以先打算把环境搞好,毕竟mentor说过好的环境才是保证产出的基石hhhhhhh。
好了,前面只是无病呻吟,现在才是真正的前言,本次项目是要做一个路口流量监控模型,主要基于rgb图像实现,主要是因为这类数据集多,同时yolov5经过各路大神的验证取得了不错的结果。因此本项目的算法原理是基于yolov5来实现目标检测,deepsort实现目标跟踪。在网上也找了一个yolov5+deepsort的实现demo(我偷懒了-。-)直接拿训练好的模型在测试数据上跑,后面就出现问题了
一、发现问题
1.测试demo跑起来特别卡
因为是视频就不放上来看了,总之可以想象出来是非常的非常的卡就完事了。
2.gpu没有跑起来
看了一眼控制台应该是gpu没有跑起来
3.查看torch没有连上cuda
4.cuda已经安装,上网查是版本问题
nvcc -V显示当前cuda版本
我所使用的是torch1.8,至少应该是10.2,11.1最佳。因此是我的cuda版本太老了。因此只要成功升级cuda到11.1.我就可以解决demo太卡的问题了。
二、解决问题
1.升级显卡驱动
这里说明一下,因为之前安装tensorflow的时候踩过雷,想安装高版本的cuda时,必须先查看一下自己电脑的显卡启动是否支持。下图是我电脑的显卡驱动,目前最高支持10.0的版本。已经hold不住cuda11.1了。
因此第一步需要先升级显卡驱动。
https://www.nvidia.cn/Download/index.aspx?lang=cn
上面这个连接可以从nvidia官网找到自己显卡相对应的最新版本显卡驱动。我的是nvidia gtx1650ti。下载并安装。安装教程就不多赘述了,我都选择默认的,包括路径,主要是之前被整怕了,失败一次就会失败n次,这次学乖了-。-
重新打开驱动配置信息,可以看到已经更新成功,可以安装新的cuda11.1了。
2.安装cuda11.1
通过官网安装,保证安全。=。=
https://developer.nvidia.com/cuda-11.1.1-download-archive
同样的,都是默认路径安装,怕了怕了。安装完成以后,再通过nvcc -V查看当前cuda版本
发现已经安装好了。当然cuda要配合cudnn使用啦,cudnn是用来连接cuda和pytorch等深度学习框架的,cuda11.1对应的是cudnn8.0。这个版本对应关系网上都可以查到。cudnn下载地址如下
https://developer.nvidia.com/rdp/cudnn-download
找到对应的版本和操作系统下载下来
下载完cudnn当然要解压啦,然后进行安装如下
从别的博主那里偷过来的,因为讲的实在是简明易懂。照做就完事了。
这样讲道理我们就完成了pytorch-gpu的配置,这时再执行torch.cuda.is_available()
好家伙怎么还是false,难道说pytorch在安装的时候没找到cuda,之后就再也找不到了吗?怎么办,当然选择不原谅他=。=直接用官方的命令重装torch,装1.9版本的。
pip3 install torch1.9.0+cu111 torchvision0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
费尽周折安装成功以后,再尝试一下。
终于完成了配置,找到了cuda,可以使用gpu加速了。
自己的demo运行速度立刻就快了很多,嘻嘻。第一章节圆满结束。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。