luz.utils module

adjacency(edge_index, device='cpu')

Convert edge indices to adjacency matrix.

Parameters

edge_index (Tensor) – Edge index tensor. Shape: \((2,N_{edges})\)

Returns

Adjacency matrix. Shape: \((N_{nodes},N_{nodes})\)

Return type

torch.Tensor

aggregate_mask(groups, num_groups, num_items, mean=False, device='cpu')

Create a mask to aggregate items into groups.

Parameters
  • groups (Tensor) – Tensor of group indices.

  • num_groups (int) – Number of groups.

  • num_items (int) – Number of items.

  • mean (Optional[bool]) – If True, mask aggregates by averaging rather than summing, by default False.

  • device (Union[str, device, None]) – Device on which mask will be created, by default “cpu”.

Returns

Mask to aggregate items into groups.

Return type

torch.Tensor

batchwise_edge_mean(edges, edge_index, batch, device='cpu')
Return type

Tensor

batchwise_edge_sum(edges, edge_index, batch, device='cpu')
Return type

Tensor

batchwise_mask(batch, edge_index=None, mean=False, device='cpu')

Create a mask for batchwise aggregation of graph nodes or edges.

Parameters
  • batch (Tensor) – Tensor of batch indices. Shape: \((N_{nodes},)\)

  • edge_index (Optional[Tensor]) – Tensor of edge indices, by default None. Shape: \((2,N_{edges})\)

  • mean (Optional[bool]) – If True, mask aggregates by averaging rather than summing, by default False.

  • device (Union[str, device, None]) – Device on which mask will be created, by default “cpu”.

Returns

Mask for batchwise aggregation. Shape: \((N_{batch},N_{nodes})\) if edge_index = None

Return type

torch.Tensor

batchwise_node_mean(nodes, batch, device='cpu')
Return type

Tensor

batchwise_node_sum(nodes, batch, device='cpu')
Return type

Tensor

dot_product_attention(query, key, mask=None)

Compute scaled dot product attention.

Parameters
  • query (Tensor) – Query vectors. Shape: \((N_{queries},d_q)\)

  • key (Tensor) – Key vectors. Shape: \((N_{keys},d_q)\)

  • mask (Optional[Tensor]) – Mask tensor to ignore query-key pairs, by default None. Shape: \((N_{queries},N_{keys})\)

Returns

Scaled dot product attention between each query and key vector. Shape: \((N_{queries},N_{keys})\)

Return type

torch.Tensor

expand_path(path, dir=None)
Return type

str

in_degree(adjacency)

Compute in-degrees of nodes in a graph.

Parameters

adjacency (Tensor) – Adjacency matrix. Shape: \((N_{nodes}, N_{nodes})\)

Returns

Nodewise in-degree tensor. Shape: \((N_{nodes},)\)

Return type

torch.Tensor

int_length(n)
Return type

int

masked_softmax(x, mask, dim=1)

Compute softmax of a tensor using a mask.

Parameters
  • x (Tensor) – Argument of softmax.

  • mask (Tensor) – Mask tensor.

  • dim (Optional[int]) – Dimension along which softmax will be computed.

Returns

Masked softmax of x.

Return type

torch.Tensor

memoize(func)
Return type

Callable[…, Any]

mkdir_safe(directory)
Return type

None

nodewise_edge_mean(edges, edge_index, device='cpu')
Return type

Tensor

nodewise_edge_sum(edges, edge_index, device='cpu')

Sum all incoming edge features for each node.

Parameters
  • edges (Tensor) – Edge features. Shape: \((N_{edges},d_e)\)

  • edge_index (Tensor) – Ege indices. Shape: \((2,N_{edges})\)

  • device (Union[str, device, None]) – Device on which mask will be created, by default “cpu”.

Returns

Tensor of summed incoming edges for each node. Shape: \((N_{nodes},d_e)\)

Return type

torch.Tensor

nodewise_mask(edge_index, mean=False, device='cpu')

Create a mask for nodewise aggregation of incoming graph edges.

Parameters
  • edge_index (Tensor) – Edge indices. Shape: \((2,N_{edges})\)

  • mean (Optional[bool]) – If True, mask aggregates by averaging rather than summing, by default False.

  • device (Union[str, device, None]) – Device on which mask will be created, by default “cpu”.

Returns

Mask for nodewise edge aggregation. Shape: \((N_{nodes},N_{edges})\)

Return type

torch.Tensor

out_degree(adjacency)

Compute out-degrees of nodes in a graph.

Parameters

adjacency (Tensor) – Adjacency matrix. Shape: \((N_{nodes},N_{nodes})\)

Returns

Nodewise out-degree tensor. Shape: \((N_{nodes},)\)

Return type

torch.Tensor

remove_self_loops(edge_index, edges=None)
Return type

Union[Tensor, Tuple[Tensor]]

set_seed(seed)
Return type

None

temporary_seed(seed)
Return type

None