YOLOv5复现各种环境版本匹配史上最全版本(涉及显卡\python\cuda\cudnn\torch\torchvision\tensorflow-gpu\numpy等)

序言


本文目标:
本文所总结的 版本适配涉及显卡版本\python\cuda\cudnn\torch\torchvision\tensorflow-gpu\numpy等,这些模块之间互相都有联系,最好先用小本本记下来,把这些内容都查询到,对应好再进行下载和安装,很多包的下载速度很慢,重新下载效率太低。
对于相应的安装方法简要介绍。

版本不匹配可能导致的问题有:①程序出错;②gpu无法启动,只能用cpu训练。
在这里插入图片描述

1、CUDA版本


首先,从 任务管理器->性能确定所安装的显卡型号,打开 NVIDIA控制面板,找到所允许的CUDA最高版本,如下图所示,最高为12.2。
在这里插入图片描述然后在 NVIDIA官网上查找显卡对应算力为8.9, https://developer.nvidia.com/cuda-gpus
在这里插入图片描述
再查看cuda各版本支持算力为, https://docs.nvidia.com/cuda/ampere-compatibility-guide/index.html
我没找着。看的别人的截图。 https://blog.csdn.net/qq_41664447/article/details/126914446
在这里插入图片描述

CUDA10.X版本最高支持算力为7.5,不满足显卡8.9的算力,所以应该下载11.X的版本。可学习CUDA和显卡驱动以及pytorch版本的对应关系
因此我下载了CUDA11.0.1的版本。

2、cudnn、tensorflow-gpu、python

根据和tensorflow-gpu的版本对应关系(官网查询)查到对应python版本和tensorflow-gpu以及cudnn的版本要求。
在这里插入图片描述

3、torch、torchvision

根据cuda版本以及yolov5的要求(requirements.txt)选择torch和torchvision版本(官网旧版本查询)(新版本)。再去下载相应的包,需要注意和cuda、python的对应,下载地址附在最后。
在这里插入图片描述

4、版本冲突

这时可能就会出现版本冲突问题。
冲突的体现方式是pip一个安装包,安装成功之后,会发现命令行中出现ERROR,表示虽然安装上了,但是版本不匹配。
也有可能是pycharm中提示错误。
以下为部分错误信息集结:
在这里插入图片描述
综合这些错误信息与yolov5的要求,可以降低matplotlib、pandas、ultralytics的版本。
唯一的矛盾就在于tensorflow-gpu的版本不能降低只能升级,但是那样就不满足第二个要求中和cuda等的匹配了,由于官网给出的是已经测试过没有问题的版本,所以没有测试过的只能自己尝试一下了。
于是我选择了tensorflow-gpu==2.9.0的版本,没想到成功了!!!
当然也可以选择试一下降低tensorflow-gpu的版本,有可能官网给出的是最高可以容纳的版本。

5、最终版本信息

模块名称版本号
cuda11.0.1
cudnn8.0
torch1.7.1
torchvision0.8.2
tensorflow-gpu2.9.0
其他满足要求即可

沾沾喜气~在这里插入图片描述

6、相关安装方法

模块名称方法教程
cuda官网下载参考教程
cudnn同上参考教程
torch(pytorch)下载安装包whl,再pip install路径参考教程
torchvision同上参考教程
tensorflow-gpupip install tensorflow-gpu==2.9.0 镜像地址
其他pip install即可,或者统一根据pycharm的提示

镜像地址使用方法:
方法一:pip install 安装包名字 -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com //豆瓣镜像网站

方法二:pip install 安装包名字 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com //豆瓣

方法三:pip install 安装包名字 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn //清华大学

7、卸载方法

当出现版本不匹配的错误之后,如何卸载相应的模块呢?
这个教程是比较靠谱的。
之前看到一个教程说让带nivida的都删掉,结果我把显卡驱动也删了,屏幕显示都出现问题(气!)。
搞得我很头大,也是涨了不少知识。

模块名称方法
cuda、cudnn卸载NIVIDIA相关程序,把相应版本号的删掉即可
tensorflow-gpu以及torch相关pip uninstall即可
python配置虚拟环境的时候设置的,可以重建虚拟环境

在这里插入图片描述

YOLOv8 是一种流行的物体检测算法,其`seed`参数通常用于设置随机数生成器的种子,以便在训练过程中保持一致性,确保模型每次训练的初始化权重都一样,从而更容易进行比较和复现实验结果。为了保证YOLOv8训练的复现性,你可以按照以下步骤设置`seed`: 1. 设置全局随机数种子:在开始训练前,先设置Python的全局随机数种子,例如使用`random.seed()`或`numpy.random.seed()`函数。这将影响所有依赖于随机数的库。 ```python import random random.seed(42) import numpy as np np.random.seed(42) ``` 这里选择一个常见的值,如42,但可以根据需要自行设定。 2. 设置torch(PyTorch)的随机种子:如果你在使用PyTorch的话,也需要设置它的随机数种子,通常是通过`.manual_seed()`函数: ```python import torch torch.manual_seed(42) ``` 3. 对于PyTorch框架内其他可能的随机源(如DataParallel),也要设置它们的种子以保持一致: ```python if torch.cuda.is_available(): torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False torch.cuda.manual_seed_all(42) # 如果使用GPU ``` 4. 在训练循环里,确保每个epoch或者batch内部也是一致的,因为有些操作可能会依赖随机化,比如数据增强。 记住,在实际研究中,除了设置固定的种子外,还要记录好所有依赖于随机性的操作细节,例如数据集的排序、批处理大小等,这些都是确保复现的关键因素。另外,由于深度学习训练过程本身有一定的随机性和并行计算的影响,完全复现100%准确的结果是不太可能的,但在大部分情况下,设置适当的种子能显著提高复现性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值