torch_geometric.sampler
一个抽象基类,用于初始化图采样器,并提供 |
|
|
|
|
|
在 |
|
在异质图上的 |
|
在均匀或异质图中采样的邻居数量。 |
|
调用 |
|
|
|
一个由 |
- class BaseSampler[source]
一个抽象基类,用于初始化图采样器并提供
sample_from_nodes()和sample_from_edges()例程。注意
任何存储在采样器中的数据都会在使用采样器的数据加载工作器之间复制,因为每个数据加载工作器都持有采样器的一个实例。 因此,建议限制存储在采样器中的信息量。
- sample_from_nodes(index: NodeSamplerInput, **kwargs) Union[HeteroSamplerOutput, SamplerOutput][source]
从
index中指定的节点执行采样,返回指定输出格式的采样子图。index是一个包含以下信息的元组:种子节点的示例索引
开始采样的节点索引
给定种子节点的时间戳(可选)
- Parameters:
索引 (NodeSamplerInput) – 节点采样器输入对象。
**kwargs (可选) – 额外的关键字参数。
- Return type:
- sample_from_edges(index: EdgeSamplerInput, neg_sampling: Optional[NegativeSampling] = None) Union[HeteroSamplerOutput, SamplerOutput][source]
从
index中指定的边进行采样,返回指定输出格式的采样子图。The
indexis a tuple holding the following information:种子链接的示例索引
开始采样的源节点索引
开始采样的目标节点索引
种子链接的标签(可选)
给定种子节点的时间戳(可选)
- Parameters:
index (EdgeSamplerInput) – 边缘采样器输入对象。
neg_sampling (NegativeSampling, optional) – 负采样配置。(默认值:
None)
- Return type:
图采样器包。
- class NodeSamplerInput(input_id: Optional[Tensor], node: Tensor, time: Optional[Tensor] = None, input_type: Optional[str] = None)[source]
采样的输入来自
sample_from_nodes().- Parameters:
input_id (torch.Tensor, optional) – 当前小批次数据加载器输入的索引。
node (torch.Tensor) – 开始采样的种子节点的索引。
时间 (torch.Tensor, 可选) – 种子节点的时间戳。 (默认:
None)
- class EdgeSamplerInput(input_id: Optional[Tensor], row: Tensor, col: Tensor, label: Optional[Tensor] = None, time: Optional[Tensor] = None, input_type: Optional[Tuple[str, str, str]] = None)[source]
sample_from_edges()的采样输入。- Parameters:
input_id (torch.Tensor, optional) – 当前小批次数据加载器输入的索引。
row (torch.Tensor) – 开始采样的种子链接的源节点索引。
col (torch.Tensor) – 开始采样的种子链接的目标节点索引。
标签 (torch.Tensor, 可选) – 种子链接的标签。 (默认:
None)时间 (torch.Tensor, 可选) – 种子链接的时间戳。 (默认:
None)input_type (Tuple[str, str, str], optional) – 输入边的类型(在异构图的情况下进行采样时使用)。(默认值:
None)
- class SamplerOutput(node: Tensor, row: Tensor, col: Tensor, edge: Optional[Tensor], batch: Optional[Tensor] = None, num_sampled_nodes: Optional[List[int]] = None, num_sampled_edges: Optional[List[int]] = None, orig_row: Optional[Tensor] = None, orig_col: Optional[Tensor] = None, metadata: Optional[Any] = None)[source]
在
BaseSampler上的采样输出,适用于同构图。- Parameters:
节点 (torch.Tensor) – 原始图中的采样节点。
row (torch.Tensor) – 采样子图的源节点索引。 索引必须重新索引到
{ 0, ..., num_nodes - 1 }对应于node张量中的节点。col (torch.Tensor) – 采样子图的目标节点索引。 索引必须重新索引到
{ 0, ..., num_nodes - 1 }对应于node张量中的节点。edge (torch.Tensor, optional) – 原始图中的采样边。 此张量用于从原始图中获取边特征。如果没有边属性,则可以省略。
batch (torch.Tensor, optional) – 用于标识每个采样节点的种子节点的向量。在每种子节点的不相交子图采样情况下可能存在。(默认值:
None)num_sampled_nodes (List[int], optional) – 每跳采样的节点数量。(默认值:
None)num_sampled_edges (List[int], optional) – 每跳采样的边数。(默认:
None)orig_row (torch.Tensor, optional) – 由采样器返回的原始源节点索引。 在调用
to_bidirectional()时,如果使用了keep_orig_edges选项,则会填充此值。(默认值:None)orig_col (torch.Tensor, optional) – 原始目标节点 由采样器返回的索引。 在调用
to_bidirectional()时,如果使用了keep_orig_edges选项,则会填充此字段。(默认值:None)metadata (
Optional[Any], 默认:None) – (Any, 可选): 额外的元数据信息。 (默认:None)
- class HeteroSamplerOutput(node: Dict[str, Tensor], row: Dict[Tuple[str, str, str], Tensor], col: Dict[Tuple[str, str, str], Tensor], edge: Dict[Tuple[str, str, str], Optional[Tensor]], batch: Optional[Dict[str, Tensor]] = None, num_sampled_nodes: Optional[Dict[str, List[int]]] = None, num_sampled_edges: Optional[Dict[Tuple[str, str, str], List[int]]] = None, orig_row: Optional[Dict[Tuple[str, str, str], Tensor]] = None, orig_col: Optional[Dict[Tuple[str, str, str], Tensor]] = None, metadata: Optional[Any] = None)[source]
在异质图上的
BaseSampler的采样输出。- Parameters:
node (Dict[str, torch.Tensor]) – 原始图中每种节点类型的采样节点。
row (Dict[Tuple[str, str, str], torch.Tensor]) – 每种边类型的采样子图的源节点索引。 索引必须重新索引到
{ 0, ..., num_nodes - 1 }对应于源节点类型的node张量中的节点。col (Dict[Tuple[str, str, str], torch.Tensor]) – 每种边类型的采样子图的目标节点索引。 索引必须重新索引为
{ 0, ..., num_nodes - 1 }对应于目标节点类型的node张量中的节点。edge (Dict[Tuple[str, str, str], torch.Tensor], optional) – 原始图中每种边类型的采样边。 此张量用于从原始图中获取边特征。如果没有边属性,则可以省略。
batch (Dict[str, torch.Tensor], optional) – 用于标识每个节点类型的每个采样节点的种子节点的向量。在每种子节点的独立子图采样情况下可能存在。 (默认值:
None)num_sampled_nodes (Dict[str, List[int]], optional) – 每个节点类型和每层的采样节点数。 (default:
None)num_sampled_edges (Dict[EdgeType, List[int]], optional) – 每种边类型和每层的采样边数。 (默认值:
None)orig_row (Dict[EdgeType, torch.Tensor], optional) – 采样器返回的原始源节点索引。 在调用
to_bidirectional()时,如果使用了keep_orig_edges选项,则会填充此字段。(默认值:None)orig_col (Dict[EdgeType, torch.Tensor], optional) – 由采样器返回的原始目标节点索引。在调用
to_bidirectional()时,如果使用了keep_orig_edges选项,则会填充此字段。(默认值:None)metadata (
Optional[Any], default:None) – (Any, optional): Additional metadata information. (default:None)
- class NumNeighbors(values: Union[List[int], Dict[Tuple[str, str, str], List[int]]], default: Optional[List[int]] = None)[source]
在均匀或异质图中采样的邻居数量。在异质图中,也可以接受一个字典,表示要为各个边类型采样的邻居数量。
- Parameters:
- get_values(edge_types: Optional[List[Tuple[str, str, str]]] = None) Union[List[int], Dict[Tuple[str, str, str], List[int]]][source]
返回邻居的数量。
- class NegativeSampling(mode: Union[NegativeSamplingMode, str], amount: Union[int, float] = 1, src_weight: Optional[Tensor] = None, dst_weight: Optional[Tensor] = None)[source]
当调用
BaseSampler的sample_from_edges()时的负采样配置。- Parameters:
mode (str) – 负采样模式 (
"binary"或"triplet")。 如果设置为"binary",将从图中随机采样负链接。 如果设置为"triplet",将为每个正源节点随机采样负目标节点。src_weight (torch.Tensor, optional) – 一个节点级别的向量,用于确定源节点的采样。不一定需要总和为一。如果未给出,负节点将均匀采样。(默认值:
None)dst_weight (torch.Tensor, optional) – 一个节点级别的向量,用于确定目标节点的采样。不一定需要总和为一。如果未提供,负节点将均匀采样。(默认值:
None)
- class NeighborSampler(data: Union[Data, HeteroData, Tuple[FeatureStore, GraphStore]], num_neighbors: Union[NumNeighbors, List[int], Dict[Tuple[str, str, str], List[int]]], subgraph_type: Union[SubgraphType, str] = 'directional', replace: bool = False, disjoint: bool = False, temporal_strategy: str = 'uniform', time_attr: Optional[str] = None, weight_attr: Optional[str] = None, is_sorted: bool = False, share_memory: bool = False, directed: bool = True)[source]
一个用于
NeighborLoader的内存中(异构)邻居采样器的实现。