pytorch 笔记:torch_geometric (1)创建一张图
生活随笔
收集整理的這篇文章主要介紹了
pytorch 笔记:torch_geometric (1)创建一张图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 torch_geometric介紹
????????PyTorch geometric 是一個基于pytorch的圖網絡處理庫,里面封裝了處理圖網絡需要用到的基礎結構。
?????????一個單個的圖被描述為torch_geometric.data.Data,他有以下屬性:
- data.x (節點的特征)? ? ? ? ? ? ? ? ? ? ? ? ? ? shape: [num_nodes, num_node_features]
- data.edge_index (圖的連接情況)? ? ? ? shape: [2, num_edges]
- data.edge_attr (邊的特征)? ? ? ? ? ? ? ? ? ?shape: [num_edges, num_edge_features]
- data.y: 節點標簽,對于node-level級的任務,該數據形狀為[num_nodes, ];對于graph-level級的任務,形狀為[, ]
- data.ydata.posshape:該矩陣表示節點在空間中的位置信息。 [num_nodes, num_dimensions]
2 創建一張圖
?我們創建一張這樣的有向圖
import torch from torch_geometric.data import Data2.1 設置點屬性
shape = [num_nodes, num_node_features]
?圖中有四個節點 v1~v4 每個節點兩維特征向量表示,標簽y是其類別
x = torch.tensor([[2,1], [5,6], [3,7], [12,0]]) y = torch.tensor([0, 1, 0, 1])2.2 設置邊屬性
shape = [2,num_edge]
邊的第一個列表表示源節點索引,第二個列表表示目標節點索引
創建的Data對象與順序無關
?
2.3??構建Graph的數據
data = Data(x=x, y=y,edge_index=edge_index) data''' Data(x=[4, 2], edge_index=[2, 5], y=[4]) 說明有向邊有5條、節點有4個、每個節點有兩個特征 '''3 Data的屬性
3.1 將Data視為字典
keys | data有幾個鍵值 |
data['x'] | 查看鍵值為x的內容(即節點的特征) |
鍵值對 |
?3.2 將Data視為圖
??
| 點數量 | |
| 邊數量 | |
| 點的特征數量 | |
| 有無孤立點 | 有孤立點的情況: edge_index = torch.tensor([[0, 1, 1],[1, 0, 1]])x = torch.tensor([[-1], [0], [1]])data = Data(x=x, edge_index=edge_index) data.has_isolated_nodes() #True |
| 有無自環 | 有自環的情況: edge_index = torch.tensor([[0, 1, 1],[1, 0, 1]])x = torch.tensor([[-1], [0], [1]])data = Data(x=x, edge_index=edge_index) data.has_self_loops() #True |
| 是否是有向圖 | 無向圖的情況: edge_index = torch.tensor([[0, 1, 1, 2],[1, 0, 2, 1]])x = torch.tensor([[-1], [0], [1]])data = Data(x=x, edge_index=edge_index) data.is_directed()#False |
總結
以上是生活随笔為你收集整理的pytorch 笔记:torch_geometric (1)创建一张图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 错误处理:安装torch-sparse、
- 下一篇: torch_geometric笔记:数据