自己一开始由于没有什么了解,就随便网上找了一个教程开始弄,也没有在意是否匹配自己的显卡驱动情况,就安装了,最开始受罪的是我的Ubuntu,哎,这个就不提了,都是泪,之后再在windows10 上安装cuda、cudnn等也是一头雾水,各种版本问题啊、下载问题啊、虚拟环境问题啊、BERT支持问题啊,导致按了又重装一遍,一开始安装的时候NVIDIA驱动都被我搞没了,安装完成之后用几天等到不匹配的时候才发现这个问题,心态都有点要崩了(像我这么积极的人 哈哈 ),昨天开始全部重新安装,顺便写下全部过程,应该是踩了不少坑,希望可以对后来人有所帮助。
大家先要了解自己的驱动支持版本,我是在昨天更新驱动之后才可以支持cuda10.1的,要不然之前一直最高只支持9.1版本的,那么如何查看本地驱动支持的CUDA版本呢?
操作:打开NVIDIA驱动程序,选择导航栏帮助-系统信息,选择组件,查看动态链接库文件NVCUDA.DLL 后面会写最高支持的CUDA版本哦
这里再新增一点(菜鸟的我又踩到坑了。。。):虽然驱动支持cuda10.1的,但是后面在跑模型的时候出现本机的算力不足的问题,也就是硬件无法支持cuda的高版本,最后我卸载cuda10.1的,然后重装了cuda9.0的,这个问题就解决了,笔记本还是有点菜啊(920M 对应算力3.5)
这里附一张显卡算力表:
下面带一张cuda对应需求算力:
这里由于官网找得比较麻烦,大家可以通过点击下面链接找到较为全面的CUDA版本(链接地址是:https://developer.nvidia.com/cuda-toolkit-archive)
CUDA各版本官方下载地址
下载之后就安装吧
这里顺便提一下,因为CUDA是运行在整个系统环境的,所以推荐的虚拟环境下跑pytorchGPU也是木得问题的,也就是说直接安装在整个系统环境就OK。(本博文推荐安装pytorch在虚拟环境中,通过anaconda软件,conda命令,比较好管理哦,下面教程也会写)
点击运行 开始时一个暂时解压路径选择,直接默认就行,因为这个没有什么用途,只是暂时作为一个解压空间用,安装完成会自动删除,所以别把之后的cuda安装位置选在这里,否则你懂得 哈哈(我可是踩过哦) 慢慢等待解压吧
解压完成后 进入NVIDIA的软件检测安装,系统检查之后点同意协议,之后安装模式选择精简模式就是把提供的东西全装,这个模式里面会重新安装驱动,所以建议选择自定义,就安装一个CUDA就ok,之后有三个文件的位置,这个就是主要的CUDA文件了,这个位置可不能安装在上面选择的解压位置哦,wuwu,对了 这几个路径位置如果不想放在默认位置的话,放在自己记得的地方吧,后面配置环境变量有用,路径选择之后,就是一段等待安装完成。
之后可以在命令行运行nvcc -V 进行验证是否安装成功(只要上面没有出错肯定是OK的,不过,哈哈,这里肯定是有坑的,nvcc 命令无法识别,这说明你得NVIDIA没有弄好,这个虽然是有点烦,但是百度就OK,一般是驱动没有装好)
cudnn的到官网进行下载,记得选择对应cuda的版本(这个要自己注册个账号,并且要填一个问卷才能下载,对于新用户来说)
CUDNN下载地址
下载完之后解压,里面有三个目录,对应cuda的三个同名目录,把cudnn三个目录里面的东西复制到cuda同名目录下就ok了,lib要再进到x64 把里面的文件拷贝到cuda的lib\x64 路径下
之后就是配置环境了
这个配置环境变量我就把配置环境比较详细有效的链接放这里吧
https://blog.csdn.net/u010618587/article/details/82940528
我就不多讲了,自己也是偷师的,配置的不咋样没有几把刷子就不误人子弟了 哈哈 ,我下面就不讲这个了吧,看前面大佬的操作链接吧 嘿嘿(偷的一手好懒)
之后就是使用anaconda的conda进行虚拟环境下的pytorch安装配置了,因为在虚拟环境下可以根据自己的需求来改变各种包的版本,不会容易混起来,所以我是选择在虚拟环境下进行安装的 推荐大家使用虚拟环境。 请大家先去安装一下anaconda吧。
安装完成之后,在开始菜单搜索prompt 打开 Anaconda Prompt
之后的路径大家就不用纠结了,直接使用就是了(我也不是很懂,就不多说了,有错请大家指正,嘿 菜的抠脚 哎)
关于虚拟环境的创建和使用,命令如下
创建命令 conda create -n pytorch_gpu python=3.7
pytorch_gpu 是 虚拟环境的名字,后面的python=3.7是指定python版本 因为是要使用pytorch 所以得安装python ,如果不指定python版本的话,好像是默认使用本地的python版本(前提是得有)
名字和版本可以根据自己的需要进行修改
进入虚拟环境 activate pytorch_gpu 这个命令运行之后前面的 base 会变成 pytorch_gpu 说明进入了这个名字的虚拟环境
退出命令 deactivate
之后就是在虚拟环境下安装对应版本的pytorch 了, 官网的安装实在太慢了,于是这里推荐大家离线安装,先去清华镜像站下载pytorch 和 torchvision 之后进行conda离线安装 会快很多 飞一般的感觉~~~~~
清华镜像站pytorch 位置:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
自己选择对应版本吧 pytorch 和 torchvision都下,torchvision独立于torch。torchvision包由流行的数据集(torchvision.datasets)、模型架构(torchvision.models)和用于计算机视觉的常见图像转换组成t(torchvision.transforms)
离线安装的具体操作是
到对应的下载位置 这里我觉得下载在C的downloads文件夹中会比较方便,直接cd Downloads就OK ,之后在下载压缩包的路径下运行 conda install --offline 压缩包名字 就ok了 这里我就是切到Downloads 路径下使用这个命令,如图
为了以后方面 顺便把下载的conda源换成其他国内源吧
执行以下命令 换成 中科大的源 其他的源大家阔以百度 哈哈
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.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
这之后得安装一下torch 里面需要的一些库文件 比如 numpy 等 否则如果直接在python中import torch的话会报错
命令如下 :
conda install numpy mkl cffi pillow
这里也踩了一个坑,这个pillow我是之后才装的 是使用pip装的,不过我的这个虚拟环境中的pip 有点傲娇 遇到了‘ModuleNotFoundError: No module named ‘pip._internal.cli.main’’ 这个问题, 如果有谁遇到的话,把虚拟环境下 Scripts 里面的pip-script.py 的import部分的一行进行修改一下,代码如下:
# from pip._internal.cli.main import main
from pip._internal import main
下面是参考链接:https://blog.csdn.net/Zheng18856502880/article/details/105011474
对了 因为主要是在jupyter notebook里面进行调试, so 在这里面使用虚拟环境也是需要插件的
命令 :conda install nb_conda
上面菜单栏有一个conda
这样就可以在new那边选择Python虚拟环境进行操作了
这里我还遇到了一个无法定位程序输入点的问题 (虽然没什么问题,但是每次使用都出这东西,有点烦不是吗,嘿)
解决方法:pythoncom37.dll是pywin32的一个文件,位于路径Anaconda3\envs\pytorch(你的虚拟环境)\Lib\site-packages\pywin32_system32中,
而Anaconda3\envs\pytorch\Library\bin中也存在一个同名文件,
我将后者文件删除,并且将Anaconda3的Library\bin下的pythoncom37.dll也一起删除之后我才ok的
之后pip 安装一下pytorch_pretrained_bert(因为本人需要使用BERT的原因)
进入python
import torch
import torchvision
import pytorch_pretrained_bert
ok 没有报错 可以 到此结束 加油吧 向BERT前进
希望各位可以事业有成,人生精彩 哈哈
路漫漫其修远兮,吾将上下而求索