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试图模仿 常规的 Python 字典的行为。 此外,它提供了用于分析图结构的有用功能,并提供了基本的 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 (可选) – 附加属性。
注意
src、dst、t的形状和 :obj`msg` 的第一个维度应该相同 (num_events)。- classmethod from_dict(mapping: Dict[str, Any]) TemporalData[source]
从Python字典创建一个
TemporalData对象。- Return type:
- to_namedtuple() NamedTuple[source]
返回存储的键/值对的
NamedTuple。- Return type:
- property num_events: int
返回加载的事件数量。
注意
在
TemporalData中,每一行表示一个事件。 因此,它们也可以被理解为边。- Return type:
- property num_edges: int
num_events()的别名。- Return type:
- size(dim: Optional[int] = None) Optional[Union[Tuple[Optional[int], Optional[int]], int]][source]
返回由图形引起的邻接矩阵的大小。
- __cat_dim__(key: str, value: Any, *args, **kwargs) Any[source]
返回在使用
torch_geometric.loader.DataLoader创建小批量时,属性key的值value将被连接的维度。注意
此方法仅供内部使用,仅在特定属性的小批量创建过程损坏时才应被重写。
- Return type:
- __inc__(key: str, value: Any, *args, **kwargs) Any[source]
返回增量计数以在创建小批量时累积增加属性
key的值value,使用torch_geometric.loader.DataLoader。注意
此方法仅供内部使用,仅在特定属性的小批量创建过程损坏时才应被重写。
- Return type:
- train_val_test_split(val_ratio: float = 0.15, test_ratio: float = 0.15)[source]
根据时间将数据分割为训练集、验证集和测试集。
- coalesce()[source]
对边索引进行排序并去除重复项
edge_index。
- concat(data: Self) Self
将
self与另一个data对象连接起来。 所有值在非连接维度上需要具有匹配的形状。- Return type:
Self
- cuda(device: Optional[Union[int, str]] = None, *args: str, non_blocking: bool = False)
将属性复制到CUDA内存中,可以是所有属性,也可以仅复制在
*args中给出的属性。
- generate_ids()
生成并设置
n_id和e_id属性,为每个节点和边分配一个连续递增且唯一的ID。
- is_coalesced() bool
如果边索引
edge_index已排序且不包含重复条目,则返回True。
- property is_cuda: bool
如果任何
torch.Tensor属性存储在 GPU 上,则返回True,否则返回False。
- 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,不需要翻译。因此,翻译后的内容保持不变。
- record_stream(stream: Stream, *args: str)
确保在
stream上排队的当前工作完成之前,不会将张量内存重用于另一个张量,无论是所有属性还是仅在*args中给出的属性。
将属性移动到共享内存中,可以是所有属性,也可以只是
*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
- 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