前言
《动手深度学习》里是以Linux为例讲述如何配置,我自己的电脑是Windows系统的,吃力的很,所以我自己在安装的时候也是吃各种前辈们的细粮,作此文以鼓励自己以及初学如吾者。
进行pytorch安装之前,要保证自己电脑上有相对应版本的CUDA
一、检查电脑适配器
-
方法一
- 如果有GPU 那么你可以放心往下看啦,如果没有,那就可以收拾东西去吃饭啦(说实在,我好饿现在,但是外卖还没到)
-
方法二:
- win+R
- 输入 设备管理器
二、查看适配CUDA
- 桌面空白处双击,找到NVIDIA 控制面板
- 进入页面后,找到左下角的系统信息,再次点击
- 选择 组件 ,然后查看适配版本,有的博主说这最好装对应版本及以下版本,我没试过低版本的,也没试过高版本的,我这上面显示10.2.95,那我直接就找10.2的。
三、安装CUDA
CUDA下载链接
https://developer.nvidia.com/cuda-toolkit-archive
- 然后找对应版本,点击下载
- 下载完打开文件,开始准备安装
- 首先会弹出来一个 安装路径,第一次弹出来的这个选择安装路径是临时解压的安装路径,他还蛮人性化的,安装完成后就会把这个安装包自裁掉,这就意味着,这一次的安装路径不能与第二次弹出来的安装路径设为在同一文件夹,不然会很麻烦。如果默认盘有足够的空间,那么就让他在默认盘完成解压就行。
- 接着 安装选项 有俩,选“精简”就行,我没试过自定义,应该会麻烦些,不怕麻烦的勇敢龙龙可以试试。
- 然后就是等它安装完成啦 (有的同志会在此处安装失败,别灰心,bug千千万,码子不能惯,立马回去改安装路径,改成默认好了,要是盘不够,就重试一下)
- 安装完成后去看看系统环境变量
- 回命令行测试一下(win+R→输入 cmd)
nvcc -V
四、配置深度学习环境
- 到win菜单里找anaconda终端
- 进入以后先创建一个新环境。下面例子为例,其中d2l是我要设置的虚拟环境名,你可以设置其他的名字,然后我的python版本是3.9的,所以后面我填了=3.9,其他不变,照搬就行
conda create --name d2l python=3.9 -y
- 接着激活虚拟环境
conda activate d2l
然后就呆在这别走哈,咱开始着手安装pytorch了
五、安装pytorch
点击上面链接,先下载torch(版本号一定要记得对应哈)
- 点击下载完了以后,打开文件所在位置,复制一下文件名,回到终端
pip install "torch-1.10.2-cp39-cp39-win_amd64.whl"
中途可能会停下来,就是前面一堆东西,然后y/N:后面光标闪烁,那么你直接敲个y然乎回车
- 完成了以后你可以测试一下
- 首先在终端里进入python,然后测试,测试代码为
-
import torch print(torch.cuda.is_available())
-
然后退出python(按ctrl+Z)
- 接着安装torchrision,以下为该链接。
对应下载https://pytorch.org/get-started/previous-versions/
之所以下面找的是1.8.0的是因为我自己对应的是1.8.0,而且,找不着1.10.2的,所以现在重新演示的时候只能截一下这个1.8.0图来对付一下了
对应版本复制下来,粘贴到终端去,回车安装
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch
然后再装D2L包
pip install d2l==0.17.6
BUG
当然,少不了bug骚扰
比如
- ERROR: Could not find a version that satisfies the requirement torchvision==0.9.0 (from versions: none)
ERROR: No matching distribution found for torchvision==0.9.0
解决办法:加镜像,就是pip·····命令 写完后面加 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ,当然,看个人,你加清华镜像也OK。
2.加完镜像还报错
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
解决办法:因为我的是python3,所以在pip后面加上3,即pip3.于是乎,问题解决啦
还有bug,欢迎讨论区讨论哦。
3.path错
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<< Traceback (most recent call last): File "D:\anacondas\Lib\site-packages\conda\exception_handler.py", line 17, in __call__ return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "D:\anacondas\Lib\site-packages\conda\cli\main.py", line 54, in main_subshell parser = generate_parser(add_help=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\anacondas\Lib\site-packages\conda\cli\conda_argparse.py", line 127, in generate_parser configure_parser_plugins(sub_parsers) File "D:\anacondas\Lib\site-packages\conda\cli\conda_argparse.py", line 354, in configure_parser_plugins else set(find_commands()).difference(plugin_subcommands) ^^^^^^^^^^^^^^^ File "D:\anacondas\Lib\site-packages\conda\cli\find_commands.py", line 71, in find_commands for entry in os.scandir(dir_path): ^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: '鈥狣:\\anaconda\\Scripts'
解决办法:去找环境变量,分别把系统变量和用户变量中的path里找出路径最后是‘\anaconda\Scripts ’的然后删掉,删完以后记得点击确定。
六、重中之重,jupyter内核选择
- 重点来咯,请注意,我们install内核时要确保你现在的环境是你刚刚建的那个虚拟环境,只有在这里面install才算数。
否则你在终端能import torch也没用,jupyter会报错
ModuleNotFoundError: No module named 'torch'
,就像下面这样
所以来,咱还得收个漂亮的尾→
pip install ipykernel
- 然后再下一步,下一步中的第一个d2l是我们刚刚的虚拟环境名字,最后一个d2l是内核的名字这个看你自己要不要再编个不一样的,我懒得很。
python -m ipykernel install --user --name d2l --display-name d2l
至此若无error则大功告成!!!
- 你可以重新打开jupyter,在终端输入jupyter notebook回车即可
等它跳转
- 然后创建一个虚拟环境内核的ipy文件
- 或者随便打开一个ipynb文件,然后找到内核选项,选择刚才install的内核
耶嘿!!!完成咯,你很棒!!