正常步骤:
1.在安装前要检查电脑的上的torch和cuda版本
import torch; print(torch.__version__)检查torch版本;
import torch; print(torch.version.cuda)检查cuda版本;
2.检查完后,可以按照官网上的步骤直接用pip或者conda的命令进行安装;
(Installation — pytorch_geometric documentation (pytorch-geometric.readthedocs.io))
下面的步骤只是针对不能正常安装或者是在官网上下载不了whl的用户
首先是根据官网上的步骤安装不成功的用户,可以根据(https://data.pyg.org/whl/)这个网址上找到自己对应的版本;
Eg:
其次就是对其进行安装,安装顺序为:
1.torch-scatter 2.torch-sparse 3.torch-cluster 4.torch-spline-conv 5.torch-geometric
其中1-4的步骤是利用离线的安装包在本地进行安装,命令为 pip install +本地的路径+文件名称,最后一个安装包是利用镜像源下载,命令为 pip install torch-geometric +镜像源;到此本次的安装就全部结束。
Ps:
镜像源:
-i https://pypi.doubanio.com/simple
https://mirrors.aliyun.com/pypi/simple/
https://pypi.tuna.tsinghua.edu.cn/simple
- 在https://data.pyg.org/whl/这个网站上下载的时候要用到(梯子)
- 在安装完毕后可以用下面的这段代码进行测试一下,(这个代码就是调用gcn的一个代码)
import torch
from torch_geometric.nn import MessagePassing
from torch_geometric.utils import add_self_loops, degree
class GCNConv(MessagePassing):
def __init__(self, in_channels, out_channels):
super(GCNConv, self).__init__(aggr='add')
self.lin = torch.nn.Linear(in_channels, out_channels)
def forward(self, x, edge_index):
edge_index, _ = add_self_loops(edge_index, num_nodes=x.size(0))
x = self.lin(x)
return self.propagate(edge_index, size=(x.size(0), x.size(0)), x=x)
def message(self, x_j, edge_index, size):
row, col = edge_index
deg = degree(row, size[0], dtype=x_j.dtype)
deg_inv_sqrt = deg.pow(-0.5)
norm = deg_inv_sqrt[row] * deg_inv_sqrt[col]
return norm.view(-1, 1) * x_j
def update(self, aggr_out):
return aggr_out
if __name__ == '__main__':
# 假设图节点属性向量的维度为16,图卷积出来的节点特征表示向量维度为32
conv = GCNConv(16, 32)
x = torch.randn(5, 16)
print(x.shape)
edge_index = [
[0, 1, 1, 2, 1, 3],
[1, 0, 2, 1, 3, 1]
]
edge_index = torch.tensor(edge_index, dtype=torch.long)
output = conv(x, edge_index)
print(output.shape)
print(output.data)
文章出处登录后可见!
已经登录?立即刷新