torch_geometric.data.TemporalData

class TemporalData(src: Optional[Tensor] = None, dst: Optional[Tensor] = None, t: Optional[Tensor] = None, msg: Optional[Tensor] = None, **kwargs)[source]

基础类:BaseData

一个由描述时间图的事件流组成的数据对象。 TemporalData 对象可以包含一系列事件(可以理解为图中的时间边)以及结构化的消息。 一个事件由源节点、目标节点、时间戳和消息组成。任何连续时间动态图(CTDG)都可以用这四个值来表示。

一般来说,TemporalData 试图模仿 常规的 字典的行为。 此外,它提供了用于分析图结构的有用功能,并提供了基本的 PyTorch 张量功能。

from torch import Tensor
from torch_geometric.data import TemporalData

events = TemporalData(
    src=Tensor([1,2,3,4]),
    dst=Tensor([2,3,4,5]),
    t=Tensor([1000,1010,1100,2000]),
    msg=Tensor([1,1,0,0])
)

# Add additional arguments to `events`:
events.y = Tensor([1,1,0,0])

# It is also possible to set additional arguments in the constructor
events = TemporalData(
    ...,
    y=Tensor([1,1,0,0])
)

# Get the number of events:
events.num_events
>>> 4

# Analyzing the graph structure:
events.num_nodes
>>> 5

# PyTorch tensor functionality:
events = events.pin_memory()
events = events.to('cuda:0', non_blocking=True)
Parameters:
  • src (torch.Tensor, optional) – 事件源节点的列表,形状为 [num_events]。(默认值:None

  • dst (torch.Tensor, optional) – 事件的目标节点列表,形状为 [num_events]。(默认值:None

  • t (torch.Tensor, 可选) – 每个事件的时间戳,形状为 [num_events]。 (默认: None)

  • msg (torch.Tensor, optional) – 消息特征矩阵,形状为 [num_events, num_msg_features]。 (默认: None)

  • **kwargs (可选) – 附加属性。

注意

srcdstt 的形状和 :obj`msg` 的第一个维度应该相同 (num_events)。

classmethod from_dict(mapping: Dict[str, Any]) TemporalData[source]

从Python字典创建一个TemporalData对象。

Return type:

TemporalData

to_dict() Dict[str, Any][source]

返回存储的键/值对的字典。

Return type:

Dict[str, Any]

to_namedtuple() NamedTuple[source]

返回存储的键/值对的NamedTuple

Return type:

NamedTuple

property num_nodes: int

返回图中节点的数量。

Return type:

int

property num_events: int

返回加载的事件数量。

注意

TemporalData中,每一行表示一个事件。 因此,它们也可以被理解为边。

Return type:

int

property num_edges: int

num_events() 的别名。

Return type:

int

property edge_index: Tensor

返回图的边索引。

Return type:

Tensor

size(dim: Optional[int] = None) Optional[Union[Tuple[Optional[int], Optional[int]], int]][source]

返回由图形引起的邻接矩阵的大小。

Return type:

Union[Tuple[Optional[int], Optional[int]], int, None]

__cat_dim__(key: str, value: Any, *args, **kwargs) Any[source]

返回在使用torch_geometric.loader.DataLoader创建小批量时,属性key的值value将被连接的维度。

注意

此方法仅供内部使用,仅在特定属性的小批量创建过程损坏时才应被重写。

Return type:

Any

__inc__(key: str, value: Any, *args, **kwargs) Any[source]

返回增量计数以在创建小批量时累积增加属性key的值value,使用torch_geometric.loader.DataLoader

注意

此方法仅供内部使用,仅在特定属性的小批量创建过程损坏时才应被重写。

Return type:

Any

train_val_test_split(val_ratio: float = 0.15, test_ratio: float = 0.15)[source]

根据时间将数据分割为训练集、验证集和测试集。

Parameters:
  • val_ratio (float, optional) – 包含在验证集中的数据集比例(以百分比表示)。 (默认值: 0.15)

  • test_ratio (float, optional) – 包含在测试集中的数据集比例(以百分比表示)。(默认值: 0.15)

coalesce()[source]

对边索引进行排序并去除重复项 edge_index

has_isolated_nodes() bool[source]

如果图中包含孤立节点,则返回 True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

has_self_loops() bool[source]

如果图包含自环,则返回 True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

is_undirected() bool[source]

如果图的边是无向的,则返回 True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

is_directed() bool[source]

如果图的边是有向的,则返回 True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

apply(func: Callable, *args: str)

应用函数 func,可以应用于所有属性或仅在 *args 中指定的属性。

apply_(func: Callable, *args: str)

应用就地函数 func,可以应用于所有属性或仅在 *args 中给出的属性。

clone(*args: str)

执行张量的克隆,可以针对所有属性,也可以仅针对在*args中给出的属性。

concat(data: Self) Self

self与另一个data对象连接起来。 所有值在非连接维度上需要具有匹配的形状。

Return type:

Self

contiguous(*args: str)

确保连续的内存布局,无论是针对所有属性还是仅针对在*args中给出的属性。

cpu(*args: str)

将属性复制到CPU内存中,可以是所有属性,也可以是仅在*args中给出的属性。

cuda(device: Optional[Union[int, str]] = None, *args: str, non_blocking: bool = False)

将属性复制到CUDA内存中,可以是所有属性,也可以仅复制在*args中给出的属性。

detach(*args: str)

通过创建一个新的张量,从计算图中分离属性,可以针对所有属性或仅在*args中给出的属性进行。

detach_(*args: str)

从计算图中分离属性,可以是所有属性,也可以只是*args中给出的属性。

edge_attrs() List[str]

返回所有边级别的张量属性名称。

Return type:

List[str]

generate_ids()

生成并设置n_ide_id属性,为每个节点和边分配一个连续递增且唯一的ID。

is_coalesced() bool

如果边索引 edge_index 已排序且不包含重复条目,则返回 True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

property is_cuda: bool

如果任何 torch.Tensor 属性存储在 GPU 上,则返回 True,否则返回 False

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

is_sorted(sort_by_row: bool = True) bool

如果边索引 edge_index 已排序,则返回 True

Parameters:

sort_by_row (bool, 可选) – 如果设置为 False,将要求 按列顺序/按目标节点顺序排列 edge_index。(默认值:True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

is_sorted_by_time() bool

如果 time 已排序,则返回 True

Return type:

bool 翻译后的内容: bool 在这个例子中,`bool` 是一个Python函数名称,根据翻译规则1,不需要翻译。因此,翻译后的内容保持不变。

keys() List[str]

返回所有图形属性名称的列表。

Return type:

List[str]

node_attrs() List[str]

返回所有节点级别的张量属性名称。

Return type:

List[str]

pin_memory(*args: str)

将属性复制到固定内存中,可以是所有属性,也可以是仅在*args中给出的属性。

record_stream(stream: Stream, *args: str)

确保在stream上排队的当前工作完成之前,不会将张量内存重用于另一个张量,无论是所有属性还是仅在*args中给出的属性。

requires_grad_(*args: str, requires_grad: bool = True)

跟踪梯度计算,无论是针对所有属性还是仅针对*args中给出的属性。

share_memory_(*args: str)

将属性移动到共享内存中,可以是所有属性,也可以只是*args中给出的属性。

snapshot(start_time: Union[float, int], end_time: Union[float, int], attr: str = 'time') Self

返回data的快照,仅保留在时间段[start_time, end_time]内发生的事件。

Return type:

Self

sort(sort_by_row: bool = True) Self

对边索引 edge_index 及其对应的边特征进行排序。

Parameters:

sort_by_row (bool, 可选) – 如果设置为 False,将按列顺序/目标节点排序 edge_index。 (默认: True)

Return type:

Self

sort_by_time() Self

根据time对与time相关的数据进行排序。

Return type:

Self

to(device: Union[int, str], *args: str, non_blocking: bool = False)

执行张量设备转换,可以针对所有属性,也可以仅针对*args中给定的属性。

up_to(end_time: Union[float, int]) Self

返回data的快照,仅保留在end_time(包括edge_time)之前发生的事件。

Return type:

Self

update(data: Self) Self

使用另一个数据对象中的元素更新数据对象。 添加的元素将覆盖现有的元素(在重复的情况下)。

Return type:

Self