Win10下安装pytorch-gpu版本,包含pytorch-geometric

系统:Windows10
CUDA版本:11.0
安装工具:Anaconda、pip
预装:pytorch-gpu 1.10、pytorch-geometric(PyG)

一、CUDA与cuDNN安装

在之前安装tensorflow时本机已安装CUDA与cuDNN,输入命令查看CUDA版本,我这版本是CUDA 11.0。

nvcc -V

Win10下安装pytorch-gpu版本,包含pytorch-geometric_第1张图片

二、pytorch-gpu安装

1. 创建虚拟环境

先用conda创建一个虚拟环境

conda create -n pytorch-gpu python=3.7 -y

创建完成后进入虚拟环境

activate pytorch-gpu

若之前使用python没有更换过国内源,先更换国原,这边使用清华镜像

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

2. 安装pytorch-gpu

进入pytorch官网,选择合适版本,conda安装或者pip安装皆可。这边强调,pytorch-gpu的CUDA版本是可以向下兼容的,比如我这CUDA是11.0版本,无法安装11.3版本支持的pytorch,但我可以选择低版本CUDA10.2支持的的pytorch,而不需要重新安装CUDA。
Win10下安装pytorch-gpu版本,包含pytorch-geometric_第2张图片
复制命令,粘贴到cmd中执行,更换源后下载还是蛮快的

pip3 install torch==1.10.2+cu102 torchvision==0.11.3+cu102 torchaudio===0.10.2+cu102 -f https://download.pytorch.org/whl/cu102/torch_stable.html

Win10下安装pytorch-gpu版本,包含pytorch-geometric_第3张图片

3. 测试pytorch

输入以下代码

import torch
print(torch.__version__)
print(torch.cuda.is_available())

Win10下安装pytorch-gpu版本,包含pytorch-geometric_第4张图片

结果返回true,说明安装成功。如果有图神经网络GNN开发的需要,可以继续查看下面内容,只是用pytorch的话到此就结束了。

4. 安装pytorch-geometric(PyG)

进入pytorch-geometric官网,选择自己合适的版本,要与刚才安装pytorch时选择的CUDA版本相一致
Win10下安装pytorch-gpu版本,包含pytorch-geometric_第5张图片

pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.10.0+cu102.html

一定要按照上述命令安装,否则运行PyG代码会报错 ModuleNotFoundError: No module named 'torch_sparse',且通过 ‘pip install torch sparse’ 命令安装大概率会报错。
Win10下安装pytorch-gpu版本,包含pytorch-geometric_第6张图片

5. 测试pytorch-geometric(PyG)

单纯测试pytorch-geometric(PyG)的话,输入以下代码,没有报错即表示安装成功

import torch
from torch_geometric.data import Data

edge_index = torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long)
x = torch.tensor([[-1], [0], [1]], dtype=torch.float)

data = Data(x=x, edge_index=edge_index)
print(data)

Win10下安装pytorch-gpu版本,包含pytorch-geometric_第7张图片

若想测试一下GCN网络,可用如下代码,数据集可通过该地址下载

import torch

print(torch.__version__)
print(torch.cuda.is_available())

import torch.nn.functional as F
from torch_geometric.nn import GCNConv
from torch_geometric.datasets import Planetoid
'''
下载报错,将所有data文件下载到本地
https://github.com/kimiyoung/planetoid
将cora相关文件放入到raw文件中
'''
dataset = Planetoid(root='./tmp/Cora', name='Cora')


class GCN(torch.nn.Module):

    def __init__(self, feature, hidden, classes):
        super(GCN, self).__init__()
        self.conv1 = GCNConv(feature, hidden)
        self.conv2 = GCNConv(hidden, classes)

    def forward(self, data):
        x, edge_index = data.x, data.edge_index

        x = self.conv1(x, edge_index)
        x = F.relu(x)
        x = F.dropout(x, training=self.training)
        x = self.conv2(x, edge_index)

        return F.log_softmax(x, dim=1)


device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = GCN(dataset.num_node_features, 16, dataset.num_classes).to(device)
data = dataset[0].to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)

model.train()
for epoch in range(200):
    optimizer.zero_grad()
    out = model(data)
    loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])
    loss.backward()
    optimizer.step()
    print(epoch, loss.item())

model.eval()
_, pred = model(data).max(dim=1)
correct = pred[data.test_mask].eq(data.y[data.test_mask]).sum()
acc = int(correct) / int(data.test_mask.sum())
print('acc:', acc)

Win10下安装pytorch-gpu版本,包含pytorch-geometric_第8张图片
相比于CPU版本的pytorch,GPU版本的还是非常快的。
以上就是关于pytorch-gpu安装的所有分享啦,欢迎各位支持哈~

你可能感兴趣的:(笔记,pytorch,gcn,cuda,gpu,windows,10)