Pytorch(conda)安装
Pytorch安装(conda)的一些问题
问题:
最近安装了一下pytorch,前面安装了tensorflow没有遇到什么问题,就是直接在pycharm中搜索tensorflow-gpu版本并安装,gpu可用。但是照猫画虎的安装pytorch之后torch可用,但是Gpu不可用,torch.cuda.is_available()返回False。
尝试解决方法
1.更新Cuda,从此处下载cuda版本:下载地址参考文章:参考。一般情况参考中遇到的问题你都要解决,包括visual studio安装失败,nsight xxx安装失败等。安装目录最好不建议默认(刚开始没敢改结果少了几G)
仍存在问题:安装了10.1版本参考他人不同查看cuda方法看淡方法不同:
nvcc -V
结果:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
nvidia-smi
结果:
NVIDIA-SMI 442.59 Driver Version: 442.59 CUDA Version: 10.2
最终并没有处理这个问题,(可能这两者反应的不是同一个问题,根本没有关联?)。
2. 更新Gpu 驱动,此处就不添加参考了。
3. 下载cudnn,下载地址:下载地址,将压缩包内相应的文件放入文件夹:https://developer.nvidia.com/cudnn下相应文件夹内覆盖。
最终上述的方法并没有解决gpu不可用的问题。
查看gpu是否支持:官网,最终发现本人1050ti没有在支持列表内,但是(tf可用?)这也在安装cuda的时候有体现,会warning,最终确认可以用。
常用方法:完成上述的gpu准备后,在官网选择自己自己相应的版本命令安装,(去掉“-c pytorch”命令参数,不然使用官网源速度慢)。但是我使用上述方法gpu仍不可用。
怀疑使用的torch是cpu版本(但是自己确实使用的非cpu版本安装命令),这个部分博客也说了这个问题,window下官网方法下载的是cpu版本,于时使用conda remove卸载原始的安装包,发现确实是cpu版本的。
卸载详情:
## Package Plan ##
environment location: E:\anaconda
removed specs:
- pytorch
The following packages will be downloaded:
package | build
---------------------------|-----------------
intel-openmp-2020.0 | 166 1.5 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
mkl-2020.0 | 166 98.9 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
------------------------------------------------------------
Total: 100.5 MB
The following packages will be REMOVED:
_pytorch_select-1.1.0-cpu
ninja-1.7.2-0
pytorch-1.0.1-cpu_py37h39a92a0_0
torchvision-0.2.1-py_2
在此过程中更改了conda channel,再使用官网方法安装报错。
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:
- torchvision
Current channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
解决方法:参考
使用命令查找可用的torch
anaconda search -t conda torch
结果返回了几百行,win下可用的不多,win下gpu可用的更少,最终选择:
pytorch/pytorch | 1.4.0 | conda | linux-64, osx-64, win-64 | py2.7_2, py27_cuda7.5.18_cudnn6.0.21hc114ab0_4, py2.7_0, py2.7_1, py3.5_cuda10.0.130_cudnn7.6.2_0, py35_cuda0.0_cudnn0.0_1, py3.7_cuda101_cudnn7_0, py35_cuda90_cudnn7he774522_1, py35_cuda0.0_cudnn0.0_2, py36_cuda9.0.176_cudnn7.0.3hdc18817_4, py3.7_cuda9.0.176_cudnn7.4.2_0, py3.7_cuda9.0.176_cudnn7.4.2_2, py37_cuda80_cudnn7he774522_1, py3.7_cuda9.2.148_cudnn7.6.2_0, py3.6_cuda9.0.176_cudnn7.5.1_0, py3.5_cuda9.0.176_cudnn7.4.2_2, py3.5_cuda10.0.130_cudnn7.4.1_1, py3.5_cuda9.0.176_cudnn7.4.2_0, py35_cuda9.0.176_cudnn7.0.3h5a7d906_4, py3.6_cuda9.0.176_cudnn7.4.2_2, py3.6_cuda9.0.176_cudnn7.4.2_0, py27_cuda8.0.61_cudnn7.0.3hb4df5cf_4, py3.5_cuda9.0.176_cudnn7.5.1_0, py3.6_cuda10.0.130_cudnn7.5.1_0, py2.7_cuda9.2.148_cudnn7.6.2_0, py3.6_0, py36_cuda9.1.85_cudnn7.0.5_nccl2_2, py3.8_cpu_0, py36_cuda9.1.85_cudnn7.1.2_1, py2.7_cuda8.0.61_cudnn7.1.2_0, py2.7_cuda10.1.243_cudnn7.6.3_0, py3.5_cuda100_cudnn7_1, py3.7_cuda10.0.130_cudnn7.6.2_0, py3.5_cuda8.0.61_cudnn7.1.2_2, py3.5_cuda8.0.61_cudnn7.1.2_1, py3.5_cuda8.0.61_cudnn7.1.2_0, py3.6_cuda9.0.176_cudnn7.4.1_1, py36_cuda9.1.85_cudnn7.0.5_2, py3.6_2, py3.8_cuda10.0.130_cudnn7.6.3_0, py36_cuda0.0_cudnn0.0h57b1bc9_4, py3.6_1, py3.6_cuda10.0.130_cudnn7.4.1_1, py27_cuda9.0.176_cudnn7.0.5_nccl2_2, py3.7_cuda10.0.130_cudnn7.4.2_2, py3.7_cuda10.0.130_cudnn7.4.2_0, py27_cuda0.0_cudnn0.0_2, py2.7_cuda10.0.130_cudnn7.6.2_0, py3.5_cuda10.0.130_cudnn7.5.1_0, py36_cuda9.0.176_cudnn7.0.5_nccl2_2, py3.7_cpu_0, py27_cuda9.0.176_cudnn7.1.2_1, py35_cuda8.0.61_cudnn7.0.3h4d8fc25_4, py3.7_cuda10.0.130_cudnn7.4.1_1, py3.5_cuda9.2.148_cudnn7.6.3_0, py36_cuda7.5.18_cudnn6.0.21h759af52_4, py3.6_cuda101_cudnn7_0, py35_cuda7.5.18_cudnn6.0.21h2ca90fe_4, py35_cuda9.0.176_cudnn7.0.5_nccl2_2, py2.7_cuda10.0.130_cudnn7.4.1_1, py35_cuda9.1.85_cudnn7.0.5_nccl2_2, py36_cuda9.0.176_cudnn7.1.2_1, py37_cuda9.2.148_cudnn7.1.4_1, py2.7_cuda10.0.130_cudnn7.5.1_0, py3.7_cuda8.0.61_cudnn7.1.2_2, py2.7_cuda9.0.176_cudnn7.4.1_1, py2.7_cuda10.0.130_cudnn7.4.2_2, py2.7_cuda10.0.130_cudnn7.4.2_0, py36_cuda8.0.61_cudnn7.0.5_2, py3.5_cuda9.0.176_cudnn7.4.1_1, py3.7_cpu_1, py3.7_cuda8.0.61_cudnn7.1.2_1, py3.7_cuda8.0.61_cudnn7.1.2_0, py3.7_cuda90_cudnn7_1, py2.7_cuda10.0.130_cudnn7.6.3_0, py27_cuda8.0.61_cudnn7.0.3hf383a3f_4, py3.5_cpu_1, py37_cuda90_cudnn7he774522_1, py3.5_cuda10.1.243_cudnn7.6.3_0, py35_cuda80_cudnn7he774522_1, py3.7_1, py3.7_0, py2.7_cpu_0, py3.6_cpu_1, py3.6_cpu_0, py27_cuda0.0_cudnn0.0he480db7_4, py27_cuda9.0.176_cudnn7.0.5_2, py3.6_cuda10.0.130_cudnn7.6.3_0, py3.6_cuda80_cudnn7_1, py27_cuda9.1.85_cudnn7.0.5_nccl2_2, py27_cuda9.0.176_cudnn7.0.3_nccl2h301e181_4, py3.7_cuda10.0.130_cudnn7.5.1_0, py3.6_cuda10.0.130_cudnn7.4.2_2, py3.6_cuda10.0.130_cudnn7.4.2_0, py27_cuda8.0.61_cudnn7.1.2_1, py3.6_cuda10.0.130_cudnn7.6.2_0, py36_cuda80_cudnn7he774522_1, py3.7_2, py35_py27__9.0.176_7.1.2_2, py3.6_cuda9.2.148_cudnn7.6.3_0, py36_cuda8.0.61_cudnn7.0.3h37a80b5_4, py35_cuda9.1.85_cudnn7.0.5_2, py3.7_cuda92_cudnn7_1, py3.7_cuda9.0.176_cudnn7.4.1_1, py3.7_cuda92_cudnn7_0, py27_cuda8.0.61_cudnn7.0.5_2, py27_cuda9.2.148_cudnn7.1.4_1, py3.6_cuda90_cudnn7_1, py27_cuda9.1.85_cudnn7.1.2_1, py2.7_cuda9.0.176_cudnn7.4.2_2, py2.7_cuda9.0.176_cudnn7.4.2_0, py3.5_cuda80_cudnn7_1, py3.8_cuda101_cudnn7_0, py3.5_cuda10.0.130_cudnn7.4.2_0, py35_cuda0.0_cudnn0.0hc53adbe_4, py3.7_cuda10.0.130_cudnn7.6.3_0, py3.5_cuda9.2.148_cudnn7.6.2_0, py3.5_1, py3.5_0, py3.5_2, py2.7_cuda8.0.61_cudnn7.1.2_2, py3.8_0, py36_cuda90_cudnn7he774522_1, py3.6_cuda10.1.243_cudnn7.6.3_0, py3.6_cuda92_cudnn7_0, py2.7_cuda9.0.176_cudnn7.5.1_0, py3.8_cuda9.2.148_cudnn7.6.3_0, py37_cuda0.0_cudnn0.0_1, py36_cuda9.0.176_cudnn7.0.5_2, py3.7_cuda9.2.148_cudnn7.6.3_0, py35_cuda9.2.148_cudnn7.1.4_1, py35_cuda9.0.176_cudnn7.0.3_nccl2h5f42aa5_4, py3.5_cpu_0, py36_cuda92_cudnn7he774522_1, py3.5_cuda101_cudnn7_0, py35_cuda8.0.61_cudnn7.0.3hb362f6e_4, py27__9.0.176_7.1.2_2, py36_cuda91_cudnn7he774522_1, py35_cuda8.0.61_cudnn7.0.5_2, py2.7_cuda8.0.61_cudnn7.1.2_1, py3.5_cuda10.0.130_cudnn7.4.2_2, py35_cuda91_cudnn7he774522_1, py3.6_cuda92_cudnn7_1, py36_py35_py27__9.0.176_7.1.2_2, py37_cuda92_cudnn7he774522_1, py3.7_cuda9.0.176_cudnn7.5.1_0, py27_cuda9.0.176_cudnn7.0.3hdbbd62b_4, py35_cuda9.0.176_cudnn7.0.5_2, py36_cuda9.0.176_cudnn7.0.3_nccl2h295ae03_4, py3.8_cuda92_cudnn7_0, py3.7_cuda80_cudnn7_1, py37_cuda8.0.61_cudnn7.1.2_1, py2.7_cuda9.2.148_cudnn7.6.3_0, py3.6_cuda9.2.148_cudnn7.6.2_0, py36_cuda9.2.148_cudnn7.1.4_1, py27_cuda0.0_cudnn0.0_1, py35_cuda9.1.85_cudnn7.1.2_1, py37_py36_py35_py27__9.0.176_7.1.2_2, py35_cuda92_cudnn7he774522_1, py3.6_cuda100_cudnn7_1, py3.5_cuda92_cudnn7_0, py3.5_cuda92_cudnn7_1, py3.7_cuda100_cudnn7_1, py35_cuda9.0.176_cudnn7.1.2_1, py3.6_cuda8.0.61_cudnn7.1.2_0, py3.6_cuda8.0.61_cudnn7.1.2_1, py3.6_cuda8.0.61_cudnn7.1.2_2, py3.7_cuda10.1.243_cudnn7.6.3_0, py36_cuda8.0.61_cudnn7.0.3hcf1d89b_4, py27_cuda9.1.85_cudnn7.0.5_2, py3.5_cuda10.0.130_cudnn7.6.3_0, py37_cuda9.0.176_cudnn7.1.2_1, py36_cuda8.0.61_cudnn7.1.2_3, py35_cuda8.0.61_cudnn7.1.2_1, py36_cuda8.0.61_cudnn7.1.2_1, py35_cuda8.0.61_cudnn7.1.2_3, py27_cuda8.0.61_cudnn7.1.2_3, py3.8_cuda10.1.243_cudnn7.6.3_0, py3.5_cuda90_cudnn7_1, py36_cuda0.0_cudnn0.0_1, py36_cuda0.0_cudnn0.0_2
: PyTorch is an optimized tensor library for deep learning using GPUs and CPUs.
使用命令下载(死马当活马医,也不知道能不能成功)
conda install -c https://conda.anaconda.org/pytorch pytorch
输出:
Collecting package metadata (current_repodata.json): done
Solving environment: -
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:
- defaults/win-64::anaconda==custom=py37_1
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::astropy==4.0=py37he774522_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::bkcharts==0.2=py37_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::bokeh==2.0.0=py37_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::bottleneck==1.3.2=py37h2a96729_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::dask==2.12.0=py_0
- defaults/win-64::gensim==3.8.0=py37hf9181ef_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::h5py==2.10.0=py37h5e291fa_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::imageio==2.6.1=py37_0
- conda-forge/noarch::keras-applications==1.0.8=py_1
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::keras-preprocessing==1.1.0=py_1
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::matplotlib==3.1.3=py37_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::matplotlib-base==3.1.3=py37h64f37c6_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::mkl_fft==1.0.15=py37h14836fe_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::mkl_random==1.1.0=py37h675688f_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::numba==0.48.0=py37h47e9c7a_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::numexpr==2.7.1=py37h25d0782_0
- defaults/win-64::numpy==1.16.5=py37h19fb1c0_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::opt_einsum==3.1.0=py_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::pandas==1.0.1=py37h47e9c7a_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::patsy==0.5.1=py37_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::pytables==3.5.2=py37h1da0976_1
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::pytest-arraydiff==0.3=py37h39e3cac_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::pytest-astropy==0.8.0=py_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::pytest-doctestplus==0.5.0=py_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::pywavelets==1.1.1=py37he774522_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::scikit-image==0.16.2=py37h47e9c7a_0
- defaults/win-64::scikit-learn==0.21.3=py37h6288b17_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::scipy==1.4.1=py37h9439919_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::seaborn==0.10.0=py_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::statsmodels==0.11.0=py37he774522_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::tensorboard==2.1.0=py3_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::tensorflow==2.1.0=gpu_py37h7db9008_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::tensorflow-base==2.1.0=gpu_py37h55f5790_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch::tensorflow-estimator==2.1.0=pyhd54b08b_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::tensorflow-gpu==2.1.0=h0d30ee6_0
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64::_anaconda_depends==2019.03=py37_0
done
## Package Plan ##
environment location: E:\anaconda
added / updated specs:
- pytorch
The following packages will be downloaded:
package | build
---------------------------|-----------------
numpy-1.16.5 | py37h19fb1c0_0 49 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
pytorch-1.4.0 |py3.7_cuda101_cudnn7_0 472.8 MB pytorch
scikit-learn-0.22.1 | py37h6288b17_0 4.7 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
------------------------------------------------------------
Total: 477.5 MB
The following NEW packages will be INSTALLED:
ninja anaconda/pkgs/free/win-64::ninja-1.7.2-0
pytorch pytorch/win-64::pytorch-1.4.0-py3.7_cuda101_cudnn7_0
The following packages will be UPDATED:
scikit-learn pkgs/main::scikit-learn-0.21.3-py37h6~ --> anaconda/pkgs/main::scikit-learn-0.22.1-py37h6288b17_0
The following packages will be SUPERSEDED by a higher-priority channel:
numpy pkgs/main --> anaconda/pkgs/main
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
问题
可能大多数开发者都在linux下吧,但是win下安装的也很少提到安装的只是cpu版本,因此一直以为是gpu环境问题,浪费了很长时间,也有很多安装的并没有测试gpu是否可用,也有再显卡设置里设置高性能显卡优先使用就解决了返回false的问题,但是确实我各种方法下自动给安装的都是cpu版本,所以最终的方法还是应该查找所有可用的pytorch版本,查看相应版本的环境,依据环境下载相应版本。