PyTorch 安装

2022-03-29 13:26:17 浏览数 (1)

引言 CPU 版 Windows Conda CPU

代码语言:javascript复制
conda install pytorch torchvision torchaudio cpuonly -c pytorch

安装 CUDA

如何选择cuda的版本号 根据我们电脑本身安装的显卡的驱动版本号来决定的

代码语言:javascript复制
nvidia-smi

发现缺少文件

本人渣渣上网本自带 NVIDIA GeForce 940MX

驱动版本 388.75

当前版本 CUDA 9.1.128 官网对应 https://www.nvidia.cn/geforce/gaming-laptops/geforce-940mx/ 版本对应关系

根据上图,如果不更新, 则对应 cudatoolkit=9.0 接下来更新一下 NVIDIA 驱动 https://www.nvidia.cn/geforce/drivers/

更新

我这里选择 EXPRESS INSTALLATION , 当然也可以选择 CUSTOM INSTALLATION

它会自动先卸载相关驱动,再安装

更新完毕后,此命令就有效了

代码语言:javascript复制
nvidia-smi

更新完毕, 现在应该可以选择 cudatoolkit=11.3 了

安装 PyTorch 相关 以及 cudatoolkit

PS: PyTorch 不用装 cudnn,集成在 cudatoolkit 里面了 Windows Conda CUDA 11.3

代码语言:javascript复制
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

中途输入 y ,确定安装 PS conda install -c 中 -c 即 --channel 它用于指定搜索包的频道, -c pytorch 即使用 pytorch 频道源 使用国内清华源

代码语言:javascript复制
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

PyTorch GPU 测试

代码语言:javascript复制
import torch

print(torch.__version__)        # 返回 pytorch 的版本

# setting device on GPU if available, else CPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print('Using device:', device)
print()

#Additional Info when using cuda
if device.type == 'cuda':
    print(torch.cuda.get_device_name(0))
    print('Memory Usage:')
    print('Allocated:', round(torch.cuda.memory_allocated(0)/1024**3,1), 'GB')
    print('Cached:   ', round(torch.cuda.memory_reserved(0)/1024**3,1), 'GB')

test2.py

代码语言:javascript复制
import torch
import time

print(torch.__version__)        # 返回 pytorch 的版本
print(torch.cuda.is_available())        # 当 CUDA 可用时返回 True

a = torch.randn(10000, 1000)    # 返回10000行1000列的张量矩阵
b = torch.randn(1000, 2000)     # 返回1000行2000列的张量矩阵

t0 = time.time()        # 记录时间
c = torch.matmul(a, b)      # 矩阵乘法运算
t1 = time.time()        # 记录时间
print(a.device, t1 - t0, c.norm(2))     # c.norm(2)表示矩阵c的二范数

device = torch.device('cuda')       # 用GPU来运行
a = a.to(device)
b = b.to(device)

# 初次调用GPU,需要数据传送,因此比较慢
t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

# 这才是GPU处理数据的真实运行时间,当数据量越大,GPU的优势越明显
t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

Q&A 补充

安装失败: InvalidArchiveError

代码语言:javascript复制
WARNING conda.gateways.disk.delete:unlink_or_rename_to_trash(139): Could not remove or rename D:anaconda3pkgspytorch-1.11.0-py3.8_cuda11.3_cudnn8_0Libsite-packagestorchlibtorch_cpu.lib.  Please remove this file manually (you may need to reboot to free file handles)
WARNING conda.gateways.disk.delete:unlink_or_rename_to_trash(139): Could not remove or rename D:anaconda3pkgspytorch-1.11.0-py3.8_cuda11.3_cudnn8_0Libsite-packagestorchlibtorch_cpu.lib.  Please remove this file manually (you may need to reboot to free file handles)

InvalidArchiveError('Error with archive D:\anaconda3\pkgs\pytorch-1.11.0-py3.8_cuda11.3_cudnn8_0.tar.bz2.  You probably need to delete and re-download or re-create this file.  Message from libarchive was:nnCould not unlink')

猜测是由于之前尝试安装过, 而中途放弃安装断开, 导致遗留残余文件 解决: 尝试先删除 提示中的 4 个路径 的 文件夹及文件

代码语言:javascript复制
D:anaconda3pkgspytorch-1.11.0-py3.8_cuda11.3_cudnn8_0
D:anaconda3pkgstorchaudio-0.11.0-py38_cu113

D:\anaconda3\pkgs\pytorch-1.11.0-py3.8_cuda11.3_cudnn8_0.tar.bz2
D:\anaconda3\pkgs\torchaudio-0.11.0-py38_cu113.tar.bz2

0 人点赞