torch_geometric 笔记:TORCH_GEOMETRIC.UTILS(更新中)
1?torch_geometric.utils.add_self_loops
add_self_loops(edge_index, edge_weight: Optional[torch.Tensor] = None, fill_value: float = 1.0, num_nodes: Optional[int] = None)在edge_index中,對(duì)圖上每個(gè)節(jié)點(diǎn)i,添加一條邊(i,i)
參數(shù)介紹
| edge_index?(LongTensor)? | 原圖的edge_index |
| edge_weight?(Tensor,?optional) | 原圖那些邊的weight 【一維數(shù)組,維度需要和原來(lái)的邊數(shù)量一致】 【此時(shí)自環(huán)的權(quán)重默認(rèn)為1】 |
| fill_value?(float,?optional) | 如果edge_weight非空,將用fill_value作為自環(huán)的weight |
| num_nodes?(int,?optional)? | 最初的多少個(gè)點(diǎn)進(jìn)行自環(huán)(沒(méi)有這個(gè)參數(shù)的話,就是默認(rèn)所有的點(diǎn)) |
?返回內(nèi)容
????????(LongTensor,?Tensor) 第一個(gè)維度是更新后的edge_idx,第二個(gè)維度是邊權(quán)重,如果沒(méi)有設(shè)置edge_weight,那么第二個(gè)維度是None
2?torch_geometric.utils.remove_self_loops
去除自環(huán)
remove_self_loops(edge_index, edge_attr: Optional[torch.Tensor] = None)3 torch_geometric.utils.degree
degree(index, num_nodes: Optional[int] = None, dtype: Optional[int] = None)計(jì)算一個(gè)給定的一維index tensor的度
num_nodes也是表示計(jì)算多少個(gè)點(diǎn)的度
x,y=edge_index x,y #(tensor([0, 1, 2, 0, 3]), tensor([1, 0, 1, 3, 2]))torch_geometric.utils.degree(x) #tensor([2., 1., 1., 1.]) #0~3這四個(gè)點(diǎn)的出度torch_geometric.utils.degree(y) #tensor([1., 2., 1., 1.]) #0~3這四個(gè)點(diǎn)的入度4?torch_geometric.utils.get_laplacian
通過(guò)edge_index和可能有的edge_weight,計(jì)算圖拉普拉斯矩陣
get_laplacian(edge_index, edge_weight: Optional[torch.Tensor] = None, normalization: Optional[str] = None, dtype: Optional[int] = None, num_nodes: Optional[int] = None)?參數(shù)說(shuō)明?
| edge_index?(LongTensor)? | 原圖的edge_index | ||||||
| edge_weight?(Tensor,?optional)? | 邊權(quán)重 | ||||||
| normalization? | 圖拉普拉斯矩陣的歸一化方法:默認(rèn)是sym
| ||||||
| dtype?(torch.dtype,?optional)? | |||||||
| num_nodes?(int,?optional)? | 表示計(jì)算多少個(gè)點(diǎn)的拉普拉斯矩陣 |
5?to_networkx
to_networkx(data, node_attrs=None, edge_attrs=None, to_undirected=False, remove_self_loops=False)參數(shù)說(shuō)明
| data?(torch_geometric.data.Data)? | 需要轉(zhuǎn)換的Data數(shù)據(jù) |
| node_attrs?(iterable of str,?optional)? | 需要轉(zhuǎn)換的點(diǎn)屬性 |
| edge_attrs?(iterable of str,?optional)? | 需要轉(zhuǎn)化的邊屬性 |
| to_undirected?(bool,?optional)? | 如果是True,那么返回的就是networkx.Graph 如果是False,那么返回的就是networkx.DiGraph 無(wú)向圖會(huì)根據(jù)相應(yīng)鄰接矩陣的上三角矩陣進(jìn)行創(chuàng)建 |
| remove_self_loops?(bool,?optional)? | 是否移除自環(huán) |
我們以ENZYMES數(shù)據(jù)集的第一個(gè)data為例:
torch_geometric筆記:數(shù)據(jù)集 ENZYMES &Minibatches_UQI-LIUWJ的博客-CSDN博客
import networkx as nx import matplotlib.pyplot as plt from torch_geometric.datasets import TUDataset from torch_geometric.utils import to_networkxdataset = TUDataset(root='', name='ENZYMES')dataset[0] #Data(edge_index=[2, 168], x=[37, 3], y=[1])x=to_networkx(dataset[0]) nx.draw(x, with_labels=True)?
總結(jié)
以上是生活随笔為你收集整理的torch_geometric 笔记:TORCH_GEOMETRIC.UTILS(更新中)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: toch_geometric 笔记:me
- 下一篇: torch_geometric 笔记:n