网站专题页怎么做,重庆做腋臭骑士网站,农产品网站开发背景,WORDPRESS网站如何改版同学你好#xff01;本文章于2021年末编写#xff0c;获得广泛的好评#xff01;
故在2022年末对本系列进行填充与更新#xff0c;欢迎大家订阅最新的专栏#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现#xff0c;
Pytorch深度学习理论篇(2023版)目录地址…同学你好本文章于2021年末编写获得广泛的好评
故在2022年末对本系列进行填充与更新欢迎大家订阅最新的专栏获取基于Pytorch1.10版本的理论代码(2023版)实现
Pytorch深度学习·理论篇(2023版)目录地址为
CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例从可解释性的角度对深度学习的原理进行讲解与分析通过将深度学习知识与Pytorch的高效结合帮助各位新入门的读者理解深度学习各个模板之间的关系这些均是在Pytorch上实现的可以有效的结合当前各位研究生的研究方向设计人工智能的各个领域是经过一年时间打磨的精品专栏https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇 以下为2021版原文~~~~ 1 DGLGraph图的创建与维护
1.1 生成DGLGraph图并且增加顶点与边
import dgl
import torch as th# 边 0-1, 0-2, 0-3, 1-3
u, v th.tensor([0, 0, 0, 1]), th.tensor([1, 2, 3, 3])
g dgl.graph((u, v))print(g) # 图中节点的数量是DGL通过给定的图的边列表中最大的点ID推断所得出的
# 获取节点的ID
print(g.nodes())
# 获取边的对应端点
print(g.edges())
# 获取边的对应端点和边ID
print(g.edges(formall))
# 如果具有最大ID的节点没有边在创建图的时候用户需要明确地指明节点的数量。
g dgl.graph((u, v), num_nodes8) 1.2 获得DGLGraph图的顶点与边
import dgl
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams[font.sans-serif] [SimHei] # 显示中文字符
mpl.rcParams[font.family] STSong
mpl.rcParams[font.size] 40
g_dgl dgl.DGLGraph() # 生成一个空图
g_dgl.add_nodes(4) # 增加四个顶点
g_dgl.add_edges(list(range(4)),[0]*4) # 增加四条边
print(顶点,g_dgl.nodes()) # 输出顶点列表
print(边:,g_dgl.edges()) # 输出边
print(边索引,g_dgl.edge_id(1,0)) # 输出边索引
print(边属性,g_dgl.edges[g_dgl.edge_id(1,0)]) # 输出边属性 顶点 tensor([0, 1, 2, 3]) 边: (tensor([0, 1, 2, 3]), tensor([0, 0, 0, 0])) 边索引 1 边属性 EdgeSpace(data{}) 1.3 删除DGLGraph图的顶点与边
g_dgl.remove_edges(i) # 删除索引值为i的边
print(g_dgl.number_of_edges()) # 输出图的边数
1.4 清空DGLGraph图
g_dgl.clear() # 清空图内容
2 查看DGLGraph图中的度
DGLGraph图按照边的方向将度分为两种连接其他顶点的度out和被其他顶点连接的度。
in_degree查询指定顶点被连接的边数。in_degrees查询多个顶点被连接的边数默认查询图中的全部顶点。out_degree查询指定顶点连接其他顶点的边数。out_degrees查询多个顶点连接其他顶点的边数默认查询图中的全部顶点。
2.1 代码实战查看DGLGraph图中的度
import dgl
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams[font.sans-serif] [SimHei] # 显示中文字符
mpl.rcParams[font.family] STSong
mpl.rcParams[font.size] 40
g_dgl dgl.DGLGraph() # 生成一个空图
g_dgl.add_nodes(4) # 增加四个顶点
g_dgl.add_edges(list(range(4)),[0]*4) # 增加四条边
print(g_dgl.in_degree(0)) # 查询连接0顶点的度输出4
print(g_dgl.in_degrees([0,1])) # 查询连接01顶点的度输出tensor([4, 0])
print(g_dgl.in_degrees()) # 查询全部顶点被连接的度输出tensor([4, 0, 0, 0])
print(g_dgl.out_degrees()) # 查询全部顶点向外连接的度输出tensor([1, 1, 1, 1]) 3 DGLGraph图与NetWorkx图的相互转化
DGLGraph类在NetWorkx模块之上进行扩展
3.1 将DGLGraph图转成NetWorkx图并显示
将DGLGraph图转成NetWorkx图后便可以借助NetWorkx图的显示功能来可视化其内部结构。
import dgl
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams[font.sans-serif] [SimHei] # 显示中文字符
mpl.rcParams[font.family] STSong
mpl.rcParams[font.size] 40
import os
os.environ[KMP_DUPLICATE_LIB_OK] Trueg_dgl dgl.DGLGraph() # 生成一个空图
g_dgl.add_nodes(4) # 增加四个顶点
g_dgl.add_edges(list(range(4)),[0]*4) # 增加四条边nx.draw(g_dgl.to_networkx(),with_labelsTrue) # 先调用to_networkx()方法将DGLGraph图转成NetWorkx图再调用NeWorkx的draw()方法进行显示。#### Networkx库中对图的可视化没有自环图的功能
3.2 利用NetWorkx图创建DGLGraph图
DGLGraph图可以从NetWorkx图中转化而来。
3.2.1 代码实战利用NetWorkx图创建DGLGraph图
先调用dgl.DGLGraph()将NetWorkx图转化为DGLGraph图再调用了DGLGraph图对象的to_networkx()方法将DGLGraph图转换为NetWorkx图显示。
import dgl
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams[font.sans-serif] [SimHei] # 显示中文字符
mpl.rcParams[font.family] STSong
mpl.rcParams[font.size] 40
import os
os.environ[KMP_DUPLICATE_LIB_OK] Trueg_nx nx.petersen_graph() # 创建一个Networkx类型的无向图petersen
g_dgl dgl.DGLGraph(g_nx) # 将Networkx类型转化为DGLGraph
plt.figure(figsize(20,6))
plt.title(Networkx无向图,fontsize20)
nx.draw(g_nx,with_labelsTrue)
plt.subplots(122)
plt.title(DGL有向图,fontsize20)
nx.draw(g_dgl.to_networkx(),with_labelsTrue) # 将DGLGraph转化为Networkx类型的图 4 DGLGraph图中顶点属性的操作
4.1 为图添加节点特征和边特征
许多图数据包含节点和边上的属性即节点特征和边特征。虽然节点特征和边特征的类型在现实世界中可以是任意的但是DGLGraph只接受存储在张量(Tensor)中的属性且该属性必须为数值类型。 4.2 修改顶点属性 4.3 删除顶点属性 DGL库官方操作指南https://docs.dgl.ai/