• 背景介绍

    • 大三老师小学期作业,在与老师协商无果情况下,做深度学习项目。这篇主要记录了为了跑通yolov5代码时的一些准备工作以及在做时候遇到的大部分报错都有包含,事无巨细,适合新手小白能解决你50%问题,其他解决不了整个线性过程也可以提供一个发散思维帮助到最后运行成功。

  • 环境准备

1.下载miniconda

1.1下载

1.2设置miniconda环境变量

根据网上教程,我设置了两个,因为最近经常使用,把环境变量

位置移到前面。

1.3设置完毕验证

1.4 miniconda使用

基本conda命令如下:

①创建python虚拟环境,默认创建到miniconda安装目录下的envs里。

conda create -n Test1 python=3.7 # -n是name的缩写,python不指定版本就默认最新版。

②查看已经安装的虚拟环境列表 conda env list

③进入虚拟环境并安装其他三方库输入activate *** 即你想进入的环境的名称。

④退出当前虚拟环境 deactivate

⑤删除虚拟环境 conda env remove -n Test1

⑥安装第三方库,当我们安装好环境后,我们可以在环境中安装第三方库。

命令: conda install 库名,当然,如何系统安装有pip,也可以使用pip,一些conda命令下载不了的就可以使用pip。

⑦查找某个库的所有版本 conda search 库名。

⑧删除某个库 conda remove 库名

⑨展示当前环境下所有的库 conda list

2. 开始创建虚拟环境

2.1初始化虚拟环境

conda create -n yolo5 python=3.8.3

2.2 设置镜像源

开始切换到国内的源来提高下载速度

conda config --remove-key channels

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

2.3 遇到问题

①报错:

Collecting package metadata (repodata.json): \ Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)': /pkgs/main/win-64/repodata.json.zst

Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)': /pkgs/r/noarch/repodata.json.zst

①解决:加上镜像源后,关掉梯子。

②报错:

②解决:conda init命令会修改shell配置文件(或Windows的注册表/配置文件),使得每次启动命令行时自动激活base环境(可选)。 注意事项:- 运行conda init后,必须重新打开命令行窗口才能生效。

显示自己创好的虚拟环境环境:

③问题:下载在了c盘??

③解决:我可预见性的进行移植。

# 1. 克隆环境到目标位置(例如 D 盘)

conda create --prefix D:Tools\miniconda\envs\yolo5 --clone C:\Users\19319\.conda\envs\yolo5

# 2. 验证新环境

conda activate D:Tools\miniconda\envs\yolo5

python -c "import torch; print(torch.__version__)"

# 3. 删除原环境释放空间

conda remove --prefix C:\Users\19319\.conda\envs\yolo5 --all

情况 3:预防未来空间不足

修改 Conda 默认环境路径(永久生效):

# 1. 关闭所有 Conda 环境

conda deactivate

# 2. 创建目标目录(例如 D:\conda_envs)mkdir D:Tools\miniconda\envs

# 3. 修改 Conda 配置

conda config --add envs_dirs D:Tools\miniconda\envs

重点:这下就好了,其实我就新创了个目录,将目录配置一下,就直接将环境剪切过去了。

完成。

2.4 驱动安装

2.4.1 确认显卡型号

检查您的计算机是否配备 NVIDIA 显卡:
1. 右键点击【此电脑】(或 我的电脑)。
2. 选择【管理】。
3. 在“计算机管理”窗口中,选择【设备管理器】。
4. 展开【显示适配器】,查看是否有 NVIDIA 品牌的显卡列出。
我这边有核显和独显,适合跑深度学习代码。

下载显卡对应的驱动:

下载好,利用nvidia-smi输出一下显示安装成功。

2.5 Pytorch安装及遇到问题

打开pytorch官网:PyTorch点击GRT STARTED,30系列下载11版本的pytorch。

①依旧遇到报错
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)': /conda-forge/noarch/repodata.json.zst failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/pytorch/win-64/repodata.json> Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. 'https//conda.anaconda.org/pytorch/win-64'

①连热点解决。

②报错:Downloading and Extracting Packages:

Preparing transaction: done

Verifying transaction: failed

EnvironmentNotWritableError: The current user does not have write permissions to the target environment.

  environment location: D:\Tools\miniconda\envs\yolo5

②解决:可能跟我直接移到d盘有关

于是改了目录权限,如下图:

很好,显示false...没有解决。查看博客才知道:我天真的以为把官网的下载链接放在prompt上去掉 -c pytorch去掉就走了捷径,能更快的安装了?

No!无论你是重装多少次,都一样,torch.cuda.is_available()返回false

如果你遇到这个问题,不用担心你的步骤是不是错了,因为你被conda镜像安装给坑了。你以为下载的是GPU版本,其实镜像下载的是cpu版本你必须手动去官网用pip下载安装。这里大家可以去看这位博主写得:torch.cuda.is_available()返回false——解决办法_cuda available false-CSDN博客

很好,我改了,但是发现这时候你可以在cmd下载Pytorch了,直接使用pip安装,但是你会发现太慢导致下载失败!!!

可以用迅雷慢慢下载,我这边用vpn(因为之前遇到过这种在命令行下载失败情况)。

测试运行
import torch

print(torch.cuda.is_available())


成功!!

3.在Pycharm中添加conda环境
①报错D:\Tools\miniconda\envs\yolo5\python.exe: can't open file 'info': [Errno 2] No such file or directory

关键配置:

①解决:选择 Existing environment(使用已有环境)

在 Interpreter 栏点击 ...,手动定位到 Conda 环境的 Python.exe:

D:\Tools\miniconda\envs\yolo5\python.exe

确保勾选  Make available to all projects(全局可用)

在 Conda executable 栏指定 conda.exe 的路径(关键步骤!):

D:\Tools\miniconda\Scripts\conda.exe

我之前一直找到yolo5环境下的python.exe发现报错配置不了,其实是conda环境不变,environment进行选择就好,后面添加完成后,自然会匹配到yolo5/python.exe,如下所示。

  • 开始跑通demo

1. 下载依赖及遇到问题

使用之前,我是在github上下载的yolov5的6.1版本(后面遇到问题改成最新版的7.0了),下载requestments.txt中所需要的依赖。


配置好环境,点到detct.py进行右键运行。很好,又报错了。
①报错:ImportError DLL load failed 找不到指定的程序。

①解决:
修复 Pillow 依赖

powershell

# 激活你的 Conda 环境

conda activate yolo5

# 彻底重装 Pillow 和相关依赖

pip uninstall -y pillow

conda install -c conda-forge libtiff

pip install --no-cache-dir --force-reinstall pillow==9.5.0

2. 测试成功

图片运行成功:


测试视频,改路径为视频路径,但是又报错:
File"D:\something\homework\deeplearning\dl\yolov5-6.1\yolov5-6.1\detect.py", line 110, in run dataset = LoadImages(source, img_size=imgsz, stride=stride, auto=pt) File "D:\something\homework\deeplearning\dl\yolov5-6.1\yolov5-6.1\utils\datasets.py", line 170, in __init__ raise Exception(f'ERROR: {p} does not exist') Exception: ERROR: D:\something\homework\deeplearning\dl\yolov5-6.1\yolov5-6.1\data\ video \ roomtour.mp4 does not exist Process finished with exit code 1
显示视频不存在,后面发现因为我先把路径复制到文件中,python语法直接给我的文件名与斜杠之间加空格,后面我直接复制,所以就是source=data \ video \ roomtour.mp4,导致路径解析错误。


视频运行成功:


3. Pycharm虚拟机内存不够

在运行时,总是有左下角堆内存用完提示。勉强能运行完detect.py代码。但是一打开train.py,电脑卡成PPT,根本动不了,打开关闭Pycharm好几次都是这种情况,还是在没有运行代码的情况下。


感觉电脑要炸了,一打开cpu飙到100%,电脑风扇呼呼转。



解决:修改pycharm虚拟机堆内存容量配置。第一个是最小内存,第二个是最大内存,如下:


后面改成了-Xms1024m -Xmx4096m 开机时候呼呼一下,后面cpu占用率就下来了。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐