完整步骤,网上各种的步骤多多少少都有一些坑。
1. 下载Anaconda3
到Anaconda官网上下载Windows个人版,目前已经支持Python3.8。安装时记住安装路径,随后要配置环境变量。
Anaconda | Individual Editionwww.anaconda.com
安装好以后配置环境变量
2. 建立虚拟环境pytorch
Anaconda类似于virtualenv,用于建立虚拟环境,隔离Python包。之前只有Python3.7支持Pytorch,为了避免Python版本问题,还是建议利用Anaconda。
在conda命令行中输入
conda create -n pytorch python=3.8
建立一个名字叫pytorch的虚拟环境,并且指定Python版本为3.8。随后,Anaconda会安装pip等基础包。
建立完成后,输入
conda info --env
查看已有环境,得到类似下面的结果
(pytorch) C:Users98790>conda info --env
# conda environments:
#
base C:Users98790Anaconda3
pytorch * C:Users98790Anaconda3envspytorch
则代表pytorch建立完成。base环境是Anaconda的默认环境,不指定安装包的环境的情况下所有包都会被安装到base环境(记住这点,后面要考)。
基础包不包含pylint,为了避免vscode无缘无故报错,代码却可以执行的情况,需要自己下载,命令为
conda install -n pytorch pylint
这里的-n pytorch可选,pylint可以直接安装在Anaconda的base环境下,只要在vscode或其他编辑器中选择pylint.exe的路径即可。
通过命令
conda list
查看使用conda安装的包(类似于pip list)。
3. 修改Anaconda镜像源
打开Anaconda Prompt修改国内镜像源为清华源,输入如下命令:
[new url
需要加上下面几个镜像源:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
为了防止万一清华源没有最新版本的包,多加几个国内源
- https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
- https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
通过执行
conda config --show channels
查看现有源,再次执行
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
能够把对应的源置顶,把清华源置顶即可。执行
conda config --set show_channel_urls yes
命令,在安装前可以打印源进行检查。
千万不要用default源下载!!!
千万不要用default源下载!!!
千万不要用default源下载!!!
4. 安装Pytorch
Pytorch的官网是
PyTorchpytorch.org
(1)下载无显卡加速版本
按照下面的选择,CUDA选择None。
最下面有安装代码,不要直接复制粘贴回车,改成
conda install -n pytorch pytorch torchvision cpuonly
去掉最后的-c pytorch,然后再指定对应的环境。接下来Anaconda会自动安装各种依赖包,如果看到
_pytorch_select: 0.1-cpu_0
pytorch: 1.6.0-cpu_py38h538a6d7_0
这两个包,基本就没错了。如果后面有哪个源是default的,选择n,不要进行安装,再次输入安装的命令。正常情况下都能够找到国内源。
pytorch大小在150M左右,使用国内源的下载速度很快,中途不要乱按。(有时卡住以后按回车,可能会跳过当前包的安装,直接安装下一个包,最后还可能报错,大概是因为暂时连接不上下载超时的原因)
全部下载完成后,如果成功导入包torch就代表安装完成
python
>>> import torch
>>>
(2)下载带显卡加速的版本
如果有NVIDIA独显的可以下载这个,毕竟显卡加速能够让网络的训练速度提升近100倍。
首先检查自己的显卡驱动,在开始菜单搜索NVIDIA Control Panel,
第一行有个驱动程序版本,一般这个值都是大于400的,如果太小了,去下个驱动精灵自动检测,然后更新驱动版本。也可以到设备管理器里升级显卡驱动。
显卡驱动版本对应的CUDA版本如上图,回到Pytorch官网版本选择合适的下载。
还是不要直接运行命令,去掉-c pytorch,再加上-n pytorch,执行。
conda install -n pytorch pytorch torchvision cudatoolkit=10.2
带有显卡驱动版本的pytorch包大概在750M左右,下载时同样不要触碰任何键盘按键,不然万一跳过了torch包,就会有一堆bug。可以试试按照CSDN上讲的更改默认的超时时间,虽然可能没什么用,我碰到这个情况直接删了pytorch环境然后建一个新的。
下载的pytorch包应该是
pytorch 1.6.0 py3.8_cuda102_cudnn7_0 anaconda/cloud/pytorch
检查一下是不是py3.8_cuda102_cudnn7_0,如果是,大功告成。在conda终端里激活pytorch环境以后输入
python
>>> import torch
>>> torch.cuda.is_available()
如果返回true,那么表示显卡加速可用。
一些bug
很多情况下由于国内源的种种原因,可能安装的是150M左右的cpu版本的pytorch,在安装numpy等科学库时会自动提示更新。
conda list
检查一下,可能返回的是
(pytorch) C:Users98790>conda list
# packages in environment at C:Users98790Anaconda3envspytorch:
#
# Name Version Build Channel
_pytorch_select 0.1 cpu_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
blas 1.0 mkl https://mirrors.ustc.edu.cn/anaconda/pkgs/main
ca-certificates 2020.6.20 hecda079_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
certifi 2020.6.20 py38h32f6830_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
cffi 1.14.3 py38hba49e27_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
cudatoolkit 10.2.89 h74a9793_1 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
freetype 2.10.2 hd328e21_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
intel-openmp 2019.4 245 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
jpeg 9d he774522_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
libmklml 2019.0.5 0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
libpng 1.6.37 ha81a0f5_2 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
libtiff 4.1.0 h885aae3_6 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
lz4-c 1.9.2 h62dcd97_2 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
mkl 2019.4 245 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
mkl-service 2.3.0 py38hb782905_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
mkl_fft 1.2.0 py38h45dec08_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
mkl_random 1.1.0 py38he350917_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
ninja 1.10.1 h7ef1ec2_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
numpy 1.19.1 py38h5510c5b_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
numpy-base 1.19.1 py38ha3acd2a_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
olefile 0.46 py_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
openssl 1.1.1g he774522_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pandas 1.1.1 py38ha925a31_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
pillow 7.2.0 py38h7011068_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pip 20.2.3 py_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pycparser 2.20 pyh9f0ad1d_2 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
python 3.8.5 h60c2a47_8_cpython https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
python-dateutil 2.8.1 py_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
python_abi 3.8 1_cp38 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pytorch 1.6.0 cpu_py38h538a6d7_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
pytz 2020.1 py_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
setuptools 49.6.0 py38h32f6830_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
six 1.15.0 py_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main
sqlite 3.33.0 he774522_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
tk 8.6.10 he774522_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
torchvision 0.7.0 py38_cu102 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
vc 14.1 h869be7e_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
vs2015_runtime 14.16.27012 h30e32a0_2 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
wheel 0.35.1 pyh9f0ad1d_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
wincertstore 0.2 py38_1003 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
xz 5.2.5 h62dcd97_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
zlib 1.2.11 h62dcd97_1009 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
zstd 1.4.5 h1f3a1b7_2 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pytorch安装成了cpu版本。
解决办法:
直接下载相关的库,numpy,pandas和matplotlib,他会提示自动更新,下面是安装的完整过程。
(pytorch) C:Users98790>conda install -n pytorch matplotlib
Solving environment: /
Warning: >10 possible package resolutions (only showing differing packages):
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.ustc.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::icu-67.1-h33f27b4_0, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::libclang-10.0.1-default_hf44288c_1, https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge::tornado-6.0.4-py38hfa6e2cd_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/main::_pytorch_select-1.2.0-gpu
... and othersdone
==> WARNING: A newer version of conda exists. <==
current version: 4.5.11
latest version: 4.8.4
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: C:Users98790Anaconda3envspytorch
added / updated specs:
- matplotlib
The following packages will be downloaded:
package | build
---------------------------|-----------------
icu-67.1 | h33f27b4_0 16.1 MB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
matplotlib-3.3.2 | 0 6 KB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
libclang-10.0.1 |default_hf44288c_1 22.0 MB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pyparsing-2.4.7 | pyh9f0ad1d_0 60 KB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pyqt-5.12.3 | py38h6538335_1 4.7 MB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pytorch-1.6.0 |py3.8_cuda102_cudnn7_0 704.7 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
kiwisolver-1.2.0 | py38heaebd3c_0 62 KB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
qt-5.12.6 | hb2cf2c5_0 106.2 MB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
matplotlib-base-3.3.2 | py38hfb9ee82_0 6.8 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
tornado-6.0.4 | py38hfa6e2cd_0 646 KB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
cycler-0.10.0 | py_2 9 KB https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
------------------------------------------------------------
Total: 861.3 MB
The following NEW packages will be INSTALLED:
cycler: 0.10.0-py_2 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
icu: 67.1-h33f27b4_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
kiwisolver: 1.2.0-py38heaebd3c_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
libclang: 10.0.1-default_hf44288c_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
matplotlib: 3.3.2-0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
matplotlib-base: 3.3.2-py38hfb9ee82_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pyparsing: 2.4.7-pyh9f0ad1d_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
pyqt: 5.12.3-py38h6538335_1 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
qt: 5.12.6-hb2cf2c5_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
tornado: 6.0.4-py38hfa6e2cd_0 https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
The following packages will be UPDATED:
_pytorch_select: 0.1-cpu_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main --> 1.2.0-gpu https://mirrors.ustc.edu.cn/anaconda/pkgs/main
pytorch: 1.6.0-cpu_py38h538a6d7_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main --> 1.6.0-py3.8_cuda102_cudnn7_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
Proceed ([y]/n)? y
Downloading and Extracting Packages
icu-67.1 | 16.1 MB | ############################################################################ | 100%
matplotlib-3.3.2 | 6 KB | ############################################################################ | 100%
libclang-10.0.1 | 22.0 MB | ############################################################################ | 100%
pyparsing-2.4.7 | 60 KB | ############################################################################ | 100%
pyqt-5.12.3 | 4.7 MB | ############################################################################ | 100%
pytorch-1.6.0 | 704.7 MB | ############################################################################ | 100%
kiwisolver-1.2.0 | 62 KB | ############################################################################ | 100%
qt-5.12.6 | 106.2 MB | ############################################################################ | 100%
matplotlib-base-3.3. | 6.8 MB | ############################################################################ | 100%
tornado-6.0.4 | 646 KB | ############################################################################ | 100%
cycler-0.10.0 | 9 KB | ############################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
中间有一步提示The following packages will be UPDATED,其中就有pytorch。更新过程中可以看到,pytorch是704.7MB,不要乱按键盘,等待安装完毕。
>>> torch.cuda.is_available()
True
>>> ^Z
最后检查,返回ture,显卡加速可用。
使用vscode进行编辑的时候,可能出现莫名其妙的报错信息,配置一下pylint的路径即可。