赞
踩
此次培训为写模型预测代码。在描述代码前,我先将自己配环境的血泪史附上。
笔者一开始创建了一个torch版本1.2.0、CUDA版本10.0的虚拟环境,但是由于torch版本不够,所以运行后会报错,跑不了此次培训代码,这是因为1.2.0的torch没有Hardswish这个属性,只有更高级的版本才有。以下网址打开可以查看torch版本即它们对应的属性和方法有哪些。
https://pytorch.org/docs/versions.htmlhttps://pytorch.org/docs/versions.html 于是我就决定安装torch1.9.0,但是又不想删去已有的虚拟环境(因为还有其他用处),所以重新创建了一个虚拟环境。一开始我用轮子的方式来装torch,没有注意到cpu和gpu版本的区别,结果装了cpu版本的torch,而我需要的是gpu版本,于是乎只能重新安装gpu版本的环境了。附上轮子下载的网页:
https://download.pytorch.org/whl/torch_stable.htmlhttps://download.pytorch.org/whl/torch_stable.html
如图,如果用轮子安装的,文件名前面为cpu的表示cpu版本;前面为cu的才是gpu版本,cu102表示CUDA10.2。同理,用轮子安装torchvision也是通过这样的方式来下载对应版本。
当我好不容易安装好gpu版本torch的时候,我没有意识到torch、torchvision、CUDA三者版本之间的对应性,想当然装了自己想要的版本,结果没对应好导致根本就无法跑代码。所以悲伤的我只能再一次重新安装想要的torch环境。由于我系统装的CUDA版本是10.0,支持torch的最高版本只到1.2.0,而torch1.9.0对应的CUDA版本之一为10.2。这我就头大了,难道我还要卸载CUDA10.0再去安装CUDA10.2?不过好在后来我发现完全可以在虚拟环境安装其他版本的CUDA,和系统的CUDA的版本不会产生冲突,而且只需要指令就能实现安装,不需要像安装系统CUDA那样那么麻烦(比如什么环境变量配置)。于是我就去pytroch官网找到torch1.9.0、CUDA10.2对应的安装命令,这次安装我没有选择轮子,当然官网也提供了轮子方式的命令下载,读者根据自己的需要选择哪种命令即可。官网链接如下:
Previous PyTorch Versions | PyTorchhttps://pytorch.org/get-started/previous-versions/
如图,根据我的需要,我选择了红框处的命令。但是在cmd(终端一定要先激活到虚拟环境然后再用这些命令!!!!)输入命令后发现哪些包安装得极其漫长,等了巨久结果还是没安装成功,所以我上网搜索了方法,指令后面的-c pytorch指定了下载的来源是官网,所以导致速度很慢,如果将下载源换成国内的清华源,速度会提高很多。换源操作如下:
1、使用命令将清华源网址添加conda源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
2、安装命令去掉-c pytorch后在输入终端
conda install pytorch==1.9.0 torchvision==0.10.0 cudatoolkit=10.2
清华源链接:
anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorhttps://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 这下速度真的提高了很多很多很多!!!很快我需要的环境都装好啦!!!最后一步安装cuDNN,这时候只要输入命令conda install cudnn即可,这里不需要指定cudnn版本,终端会根据前面安装的环境自动判断需要的cudnn版本。当然如果读者不放心还是可以到cudnn官网查询对应版本的cudnn版本,然后指令改为conda install cudnn == XXX。
创建一个python文件,copy如下内容再运行可以测试cuda是否可用(可用输出为True)以及其版本。
import torch
print(torch.cuda.current_device()) # 返回当前设备索引
print(torch.cuda.device_count()) # 返回GPU的数量
print(torch.cuda.get_device_name(0)) # 返回gpu名字,设备索引默认从0开始
print(torch.cuda.is_available()) # cuda是否可用
print(torch.version.cuda) # cuda版本
准备就绪后,再去跑代码,发现报错
发现这是由于Numpy版本太低了,无法匹配对应的python版本。我用pytorch官网提供的指令安装环境时,有些包也会跟着安装上,其中numpy安装为1.21.2版本,python安装了3.9版本,所以这就说明有时候通过pytorch官网提供的指令下载的自动匹配的包也可能版本不对应。但是这些包的安装相对于torch、torchvision来得容易,只需要先指令卸载pip uninstall xxx(包名,如numpy),然后再用指令pip install numpy即可,同理cudnn,终端会自动匹配对应的numpy。安装完成后查看版本,此时numpy版本为1.22。再次运行代码,成功!!!所以说明Python3.9对应的numpy版本为1.22。单个包的安装指令版本自动配对不会出现问题,但是如果像pytroch官网提供的安装torch的指令下,安装其他自动匹配的包,版本可能会出错。
终于大功告成!!!
这里再提醒读者一些细节:
1、若不用pytorch官网提供的安装torch指令,而使用下载轮子的方式话,需要先了解torch和torchvision以及CUDA三者版本的对应关系(这个直接去百度都有),然后再去分别下载对应版本的轮子。
2、直接用指令pip install torch == xxx安装的torch为cpu版本。
3、装环境前一定要先全过程浏览、掌握,不能装一个看一个,这样很容易踩坑!!!
4、安装太慢除了换清华源还可以用如下方式(来自大佬的博客):
5、numpy对应版本的python 链接:
Python Extension Packages for Windows - Christoph Gohlke (uci.edu)https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 好啦!接下来正式进入培训内容讲解!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。