torch_geometric.graphgym
工作流和注册模块
加载给定时期的模型检查点。 |
|
在给定的时期保存模型检查点。 |
|
移除给定时期的模型检查点。 |
|
移除除最后一个模型检查点之外的所有内容。 |
|
解析命令行参数。 |
|
|
|
此函数设置默认配置值。 |
|
从文件系统和命令行加载配置。 |
|
将配置转储到在 |
|
为每个随机种子实验运行创建目录。 |
|
创建完整实验运行的目录。 |
|
从文件名路径中提取文件名。 |
|
执行权重初始化。 |
|
创建数据加载器对象。 |
|
设置打印选项。 |
|
为实验创建日志记录器。 |
|
计算损失和预测分数。 |
|
为图机器学习创建模型。 |
|
创建一个配置驱动的优化器。 |
|
创建一个配置驱动的学习率调度器。 |
|
使用PyTorch Lightning训练GraphGym模型。 |
|
用于在GraphGym中注册模块的基础函数。 |
|
在GraphGym中注册一个激活函数。 |
|
在GraphGym中注册一个节点特征编码器。 |
|
在GraphGym中注册一个边缘特征编码器。 |
|
在GraphGym中注册一个定制的GNN阶段。 |
|
在GraphGym中注册一个GNN预测头。 |
|
在GraphGym中注册一个GNN层。 |
|
在GraphGym中注册一个GNN全局池化/读出层。 |
|
在GraphGym中注册一个GNN模型。 |
|
在GraphGym中注册一个配置组。 |
|
在GraphGym中注册一个数据集。 |
|
在GraphGym中注册一个数据加载器。 |
|
在GraphGym中注册一个优化器。 |
|
在GraphGym中注册一个学习率调度器。 |
|
在GraphGym中注册一个损失函数。 |
|
在GraphGym中注册一个训练函数。 |
|
在GraphGym中注册一个度量函数。 |
- load_ckpt(model: Module, optimizer: Optional[Optimizer] = None, scheduler: Optional[Any] = None, epoch: int = -1) int[source]
加载给定时期的模型检查点。
- Return type:
- save_ckpt(model: Module, optimizer: Optional[Optimizer] = None, scheduler: Optional[Any] = None, epoch: int = 0)[source]
在给定的时期保存模型检查点。
- set_cfg(cfg)[source]
此函数设置默认配置值。
请注意,对于实验,只会使用部分参数 未使用的剩余参数不会影响任何内容。 因此,请随意在graphgym.contrib.config中注册任何参数
我们支持最多两级配置,例如,
cfg.dataset.name。
- Returns:
实验使用的配置。
- load_cfg(cfg, args)[source]
从文件系统和命令行加载配置。
- Parameters:
cfg (CfgNode) – 配置节点
args (ArgumentParser) – 命令参数解析器
- compute_loss(pred, true)[source]
计算损失和预测分数。
- Parameters:
pred (torch.tensor) – 未归一化的预测
true (torch.tensor) – 真实标签
返回:损失,归一化预测分数
- train(model: GraphGymModule, datamodule: GraphGymDataModule, logger: bool = True, trainer_config: Optional[Dict[str, Any]] = None)[source]
使用PyTorch Lightning训练GraphGym模型。
模型模块
提供整数节点特征的编码器。 |
|
OGB分子数据集中使用的原子编码器。 |
|
OGB分子数据集中使用的键编码器。 |
|
创建一个GNN层,给定指定的输入和输出维度以及 |
|
在消息传递之前创建一个NN层,给定指定的输入和输出维度以及 |
|
堆叠多个GNN层。 |
|
根据指定的输入维度和 |
|
一个通用的图神经网络(GNN)模型。 |
|
用于节点级预测任务的GNN预测头。 |
|
用于边级别/链接级别预测任务的GNN预测头。 |
|
用于图级预测任务的GNN预测头。 |
|
层的通用包装器。 |
|
一个用于堆叠多个神经网络层的通用包装类。 |
|
一个基本的线性层。 |
|
一个用于节点级特征的批量归一化层。 |
|
用于边缘级别特征的批量归一化层。 |
|
一个基本的MLP模型。 |
|
一个图卷积网络(GCN)层。 |
|
一个GraphSAGE层。 |
|
图注意力网络(GAT)层。 |
|
图同构网络(GIN)层。 |
|
一个SplineCNN层。 |
|
一个通用的GNN层。 |
|
一个支持边特征的通用GNN层。 |
|
一个支持边缘特征和边缘采样的通用GNN层。 |
|
通过跨节点维度添加节点特征,返回批处理级别的图级输出。 |
|
通过平均节点维度上的节点特征,返回批次级别的图级输出。 |
|
通过跨节点维度的通道方向最大值返回批次级别的图级输出。 |
- class IntegerFeatureEncoder(emb_dim: int, num_classes: int)[source]
提供整数节点特征的编码器。
示例
>>> encoder = IntegerFeatureEncoder(emb_dim=16, num_classes=10) >>> batch = torch.randint(0, 10, (10, 2)) >>> encoder(batch).size() torch.Size([10, 16])
- class AtomEncoder(emb_dim, *args, **kwargs)[source]
OGB分子数据集中使用的原子编码器。
- Parameters:
emb_dim (int) – 输出的嵌入维度。
示例
>>> encoder = AtomEncoder(emb_dim=16) >>> batch = torch.randint(0, 10, (10, 3)) >>> encoder(batch).size() torch.Size([10, 16])
- class BondEncoder(emb_dim: int)[source]
OGB分子数据集中使用的键编码器。
- Parameters:
emb_dim (int) – 输出的嵌入维度。
示例
>>> encoder = BondEncoder(emb_dim=16) >>> batch = torch.randint(0, 10, (10, 3)) >>> encoder(batch).size() torch.Size([10, 16])
- GNNLayer(dim_in: int, dim_out: int, has_act: bool = True) GeneralLayer[source]
创建一个GNN层,给定指定的输入和输出维度以及
cfg中的基础配置。- Parameters:
- Return type:
- GNNPreMP(dim_in: int, dim_out: int, num_layers: int) GeneralMultiLayer[source]
创建一个在消息传递之前使用的NN层,给定指定的输入和输出维度以及
cfg中的基础配置。- Parameters:
- Return type:
- class FeatureEncoder(dim_in: int)[source]
对节点和边特征进行编码,给定指定的输入维度和
cfg中的基础配置。- Parameters:
dim_in (int) – 输入特征的维度。
- class GNN(dim_in: int, dim_out: int, **kwargs)[source]
一个通用的图神经网络(GNN)模型。
GNN模型由三个主要组件组成:
一个编码器,用于将输入特征转换为固定大小的嵌入空间。
用于节点之间信息交换的处理或消息传递阶段。
一个头部用于生成最终的输出特征/预测。
每个组件的配置由
cfg中的基础配置决定。
- class GNNGraphHead(dim_in: int, dim_out: int)[source]
用于图级预测任务的GNN预测头。 使用后消息传递层(由
cfg.gnn.post_mp指定)通过MLP转换池化的图级嵌入。
- class GeneralLayer(name, layer_config: LayerConfig, **kwargs)[source]
层的通用包装器。
- Parameters:
name (str) – 该层的注册名称。
layer_config (LayerConfig) – 层的配置。
**kwargs (optional) – Additional keyword arguments.
- class GeneralMultiLayer(name, layer_config: LayerConfig, **kwargs)[source]
一个用于堆叠多个神经网络层的通用包装类。
- Parameters:
name (str) – 该层的注册名称。
layer_config (LayerConfig) – 层的配置。
**kwargs (optional) – Additional keyword arguments.
- class Linear(layer_config: LayerConfig, **kwargs)[source]
一个基本的线性层。
- Parameters:
layer_config (LayerConfig) – 层的配置。
**kwargs (optional) – Additional keyword arguments.
- class BatchNorm1dNode(layer_config: LayerConfig)[source]
一个用于节点级特征的批量归一化层。
- Parameters:
layer_config (LayerConfig) – 层的配置。
- class BatchNorm1dEdge(layer_config: LayerConfig)[source]
用于边缘级别特征的批量归一化层。
- Parameters:
layer_config (LayerConfig) – 层的配置。
- class MLP(layer_config: LayerConfig, **kwargs)[source]
一个基本的MLP模型。
- Parameters:
layer_config (LayerConfig) – 层的配置。
**kwargs (optional) – Additional keyword arguments.
- global_add_pool(x: Tensor, batch: Optional[Tensor], size: Optional[int] = None) Tensor[source]
通过跨节点维度添加节点特征,返回批处理级别的图级输出。
For a single graph \(\mathcal{G}_i\), its output is computed by
\[\mathbf{r}_i = \sum_{n=1}^{N_i} \mathbf{x}_n.\]Functional method of the
SumAggregationmodule.- Parameters:
x (torch.Tensor) – Node feature matrix \(\mathbf{X} \in \mathbb{R}^{(N_1 + \ldots + N_B) \times F}\).
batch (torch.Tensor, optional) – The batch vector \(\mathbf{b} \in {\{ 0, \ldots, B-1\}}^N\), which assigns each node to a specific example.
size (int, optional) – The number of examples \(B\). Automatically calculated if not given. (default:
None)
- Return type:
- global_mean_pool(x: Tensor, batch: Optional[Tensor], size: Optional[int] = None) Tensor[source]
通过平均节点维度上的节点特征,返回批处理级别的图级输出。
For a single graph \(\mathcal{G}_i\), its output is computed by
\[\mathbf{r}_i = \frac{1}{N_i} \sum_{n=1}^{N_i} \mathbf{x}_n.\]Functional method of the
MeanAggregationmodule.- Parameters:
x (torch.Tensor) – Node feature matrix \(\mathbf{X} \in \mathbb{R}^{(N_1 + \ldots + N_B) \times F}\).
batch (torch.Tensor, optional) – The batch vector \(\mathbf{b} \in {\{ 0, \ldots, B-1\}}^N\), which assigns each node to a specific example.
size (int, optional) – The number of examples \(B\). Automatically calculated if not given. (default:
None)
- Return type:
- global_max_pool(x: Tensor, batch: Optional[Tensor], size: Optional[int] = None) Tensor[source]
通过跨节点维度的通道方向最大值返回批次级别的图级输出。
For a single graph \(\mathcal{G}_i\), its output is computed by
\[\mathbf{r}_i = \mathrm{max}_{n=1}^{N_i} \, \mathbf{x}_n.\]Functional method of the
MaxAggregationmodule.- Parameters:
x (torch.Tensor) – Node feature matrix \(\mathbf{X} \in \mathbb{R}^{(N_1 + \ldots + N_B) \times F}\).
batch (torch.Tensor, optional) – The batch vector \(\mathbf{b} \in {\{ 0, \ldots, B-1\}}^N\), which assigns each element to a specific example.
size (int, optional) – The number of examples \(B\). Automatically calculated if not given. (default:
None)
- Return type:
实用模块
对单个实验的不同随机种子进行聚合。 |
|
通过网格搜索聚合多个实验的结果。 |
|
计算参数的数量。 |
|
匹配给定基线模型的计算预算。 |
|
获取当前GPU内存使用情况。 |
|
为当前实验自动选择设备。 |
|
确定是否应在当前时期评估模型。 |
|
确定是否应在当前时期评估模型。 |
|
将Python字典转储到JSON文件中。 |
|
将一系列Python字典转储到JSON文件中。 |
|
向Tensorboard写入器添加统计信息字典。 |
|
创建一个目录,删除任何现有数据。 |
|
默认的上下文管理器,不执行任何操作。 |
- match_baseline_cfg(cfg_dict, cfg_dict_baseline, verbose=True)[source]
匹配给定基线模型的计算预算。当前的配置字典将被修改并返回。
- dict_list_to_json(dict_list, fname)[source]
Dump a list of Python dictionaries to a JSON file.
- Parameters:
dict_list (list of dict) – Python 字典的列表。
fname (str) – 输出文件名。