利用conda安装pytorch时需要先下载安装Anaconda包管理工具,地址链接:
https://www.anaconda.com/,Anaconda安装可以参考:Python入门之开发环境配置:Anaconda与PyCharm的安装详解
如果下载缓慢,可以在清华镜像站中下载,地址:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装anaconda时的常见问题,可参考博客:
安装Anaconda时忘记点击自动配置环境变量的解决方案/手动配置Anaconda环境变量方法
安装完成后:
验证Anaconda是否安装完成:win+R,然后cmd进入命令行,输入
conda list
若能正常显示,则证明安装完成。
百度搜索:CUDA10.1可下载相关版本(至于为什么选择10.1版本,后面进行介绍)
选择[local],下载。
下载完成后,双击安装即可,等待十多分钟,安装完毕。
注:这里可能会遇到一些问题,比如说检查兼容性时突然画面没了,这时就需要下载“驱动精灵”检查一下自己的什么驱动没有安装好,重新安装一下即可。
检测安装完成:win+R,然后cmd进入命令行,输入
nvcc -V
若能显示cuda10.1则证明安装完成。不必看下面的注。
注:如果nvcc找不到而出现错误,则查找该目录下是否有nvcc.exe,若存在,则只有一种可能,未配置环境变量
环境变量配置:
配置好这两个环境变量:
将这两个目录配置到path环境变量下,即可,ok,完成。再次运行win+R,然后cmd进入命令行,输入nvcc -V,应该就没问题了。
打开pytorch官网,选择相应的版本,
(这里就知道为什么要选择10.1了吧,因为很多版本都没有,由于版本具有时效性,所以建议先来看看有什么版本,再回去下载对应的CUDA)
复制下面的Run this Command:
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
然后,以管理员方式运行命令行,务必注意,以管理员方式运行
然后粘贴安装,即可。
如果出现这种错误,则证明没有以管理员方式运行。
如果正常,半个小时左右就能安装完成了。
但是,大多数情况下可能会遇到下载过慢的问题,尤其是文件:pytorch和torchvision,下载的时候可能会遇到无尽的等待。导致下载失败,出现HTTP balabla和TimeOut error。
这时推荐用清华镜像站替代默认conda源的方法,可以解决下载过慢的问题。
首先直接在这个窗口输入:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
与此同时为了保险起见,建议同时添加第三方conda源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
之后重新运行代码:
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
但是这里一定要注意,去掉-c pytorch,安装的时候才会默认从清华源下载相应的包,因此这里用命令行:
conda install pytorch torchvision cudatoolkit=10.1
在编译器中输入:
import torch
print(torch.__version__)
print('GPU:',torch.cuda.is_available())
ok,大功告成。
如果觉得有用,求赞求支持。