笔记本电脑(win11+3060+conda)安装PyTorch踩坑记录

  • 简而言之,先看你的显卡,打开CMD,输入nvidia-smi,右上角有一个CUDA:XX.X表示当前显卡及当前驱动支持的最高版本CUDA。输入nvidia-smi -q 可以看到显卡架构(或者直接去Nvidia官网找你的显卡)。再打开这个连接,查看你显卡架构支持的最低版本CUDA。从中选择一个cuda版本

  • torch是自带了cudnn(就是cuda toolkit的)

  • 然后如果想使用GPU,那么请到这里去找到你选的版本(如CUDA11.1就搜索cu111),就可以检索出你能安装的所有版本torch,再查找你的python版本,按照这个找到你可以安装的torch(或者升级/降级你的python以适配你想要的torch版本)依据torch官网的语句或者修改这段代码

    如果不想折腾,且认为自己需要最新适配版,请直接使用pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cuxxx并将xxx替换为你自己的

    注意:首选pip安装,因为conda安装还会改变部分库的引用方式(比如torch.data变成torch.utils.data)

    pip install torch==1.8.1+cu113 torchvision==0.9.1+cu113 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
    ​
    conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.3 -c pytorch -c conda-forge

    改成清华源也行。-c xxxxx是通道选择,实际上是在指定下载源使用conda会先解析你的环境然后卡住好久并且占用大量的CPU和内存,以至于你会感觉它说是不是坏了(实际上没有),结束后也有几率为你安装不是你想要的版本,所以首先选择pip(pip3

    正常情况下只会为你安装torch的四个包(哪四个我忘了,除了命令里的三个还有一个)

    如果你选择的版本不匹配(必须是对应的),使用pip将会看到:

    ERROR: Could not find a version that satisfies the requirement torch==1.8.1+cu113 (from versions: 1.4.0, 1.4.0+cpu, 1.4.0+cu92, 1.5.0, 1.5.0+cpu, 1.5.0+cu101, 1.5.0+cu92, 1.5.1, 1.5.1+cpu, ...)
    ERROR: No matching distribution found for torch==1.8.1+cu113

    使用conda(即使版本正确)会帮你安装带了cpuonly这一个包和你要求的cudatoolkit版本,和你要求的torch系列版本,以及一大堆奇怪的文件。然而是CPU版,它并不能在GPU上跑。

    The following packages will be downloaded:
    ​
        package                    |            build
        ---------------------------|-----------------
        *
        cpuonly-1.0                |                0           2 KB  pytorch
        cudatoolkit-11.3.1         |      h280eb24_10       820.8 MB  conda-forge
        *
        numpy-1.23.2               |   py38h223ccf5_0         6.3 MB  conda-forge
        *
        python_abi-3.8             |           2_cp38           4 KB  conda-forge
        pytorch-1.8.1              |      py3.8_cpu_0       160.4 MB  pytorch
        tbb-2021.5.0               |       h2d74725_1         148 KB  conda-forge
        torchaudio-0.8.1           |             py38         2.7 MB  pytorch
        torchvision-0.9.1          |         py38_cpu         6.7 MB  pytorch
        typing_extensions-4.9.0    |     pyha770c72_0          35 KB  conda-forge
        zlib-1.2.12                |       h8ffe710_2         112 KB  conda-forge
        ------------------------------------------------------------
                                               Total:        1.14 GB

  • torch版本不是越高越好。

  • 此外,某些你copy的程序是依赖于低版本torch运行的(如1.4.0),这意味着这些有特殊依赖的永远无法在你的机器上以GPU运行。不过它仍然可以用CPU版本的torch跑。(例如torchtext库和torch的版本严格对应,torch=1.8.0意味着只能选择torchtext=0.9.0,而此版本的torchtext中已经将Field等方法移到了torchtext.legacy而不是torchtext下,甚至在torchtext=0.12.0中彻底删除了这些方法,这意味着你将无法在torch>=0.11.0之后调用这些方法)。如果你试图直接下载源文件(即Field.py之类),会产生更多不可预料的问题。

  • 特别注意,安装版本的某些依赖包不成功,或者成功安装与当前torch不匹配的版本,pip会为你自动安装对应的CPU版本torch,并且不经过你同意。这会导致环境被降级到CPU类型(污染),需要重装操作。

  • 你不应该把CPU版本的Torch和GPU版本的安装在同一个conda环境里。但是你可以安装多个CUDA(比如分别安装在D:/Code/CUDA/11.1D:/Code/CUDA/11.7),然后在不同的conda环境中安装不同的torch。他们不会相互干扰

  • 如果你想卸载torch,如果你的环境刚安装不久没有太多依赖,请直接--all删除环境,重新配。如果环境依赖比较多,而你要卸载CPU版torch(这个我没什么好办法)。如果要卸载GPU版,请依次卸载torch torchvision torchaudio并且卸载cpuonly,然后记得在确保安全(并且知道这两个命令的含义)的前提下使用

    conda clean -a
    pip cache purge

    或者其他的什么作用类似的代码

  • 至于同一环境中同时安装tensorflowtorchmindspore,似乎用处不是特别大,当她们依赖的库(例如numpymatplotlib)版本不一样时会产生意想不到的冲突(污染)。所以如非必要(比如你要建立一个在线编程网站供使用者随时调用,那么请仔细选择版本。当然绝大多数情况下没人会在一个小项目里同时使用tftorch),不用同时安装。

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值