tf_geometric

Graph (Data Structure for a Single Graph)

class tf_geometric.Graph(x, edge_index, y=None, edge_weight=None)
__init__(x, edge_index, y=None, edge_weight=None)
Parameters
  • x – Tensor/NDArray, shape: [num_nodes, num_features], node features

  • edge_index – Tensor/NDArray, shape: [2, num_edges], edge information. Each column of edge_index (u, v) represents an directed edge from u to v. Note that it does not cover the edge from v to u. You should provide (v, u) to cover it. This is not convenient for users. Thus, we allow users to provide edge_index in undirected form and convert it later. That is, we can only provide (u, v) and convert it to (u, v) and (v, u) with convert_edge_to_directed method.

  • y – Tensor/NDArray/None, any shape, graph label. If you want to use this object to construct a BatchGraph object, y cannot be a scalar Tensor.

  • edge_weight – Tensor/NDArray/None, shape: [num_edges]

convert_data_to_tensor(inplace=False)

Convert all graph data into Tensors. All corresponding properties will be replaces by their Tensor versions.

Returns

The Graph object itself.

convert_edge_to_directed(merge_mode='sum')

Each column of edge_index (u, v) represents an directed edge from u to v. Note that it does not cover the edge from v to u. You should provide (v, u) to cover it. This is not convenient for users. Thus, we allow users to provide edge_index in undirected form and convert it later. That is, we can only provide (u, v) and convert it to (u, v) and (v, u) with convert_edge_to_directed method.

Deprecated since version 0.0.84: Use to_directed(inplace=True) instead.

Returns

property num_edges

Number of edges

Returns

Number of edges

property num_features

Number of node features

Returns

Number of node features

property num_nodes

Number of nodes

Returns

Number of nodes

sample_new_graph_by_node_index(sampled_node_index)
Parameters

sampled_node_index – Tensor/NDArray, shape: [num_sampled_nodes]

Returns

A new cloned graph where nodes that are not in sampled_node_index are removed, as well as the associated information, such as edges.

tensor_spec_edge_weight = TensorSpec(shape=(None,), dtype=tf.float32, name=None)

A Graph object wrappers all the data of a graph, including node features, edge info (index and weight) and graph label

to_directed(merge_mode='sum', inplace=False)

Each column of edge_index (u, v) represents an directed edge from u to v. Note that it does not cover the edge from v to u. You should provide (v, u) to cover it. This is not convenient for users. Thus, we allow users to provide edge_index in undirected form and convert it later. That is, we can simply provide (u, v) and convert it to (u, v) and (v, u) with convert_edge_to_directed method.

Returns

If inplace is False, return a new graph with directed edges. Else, return the current graph with directed edges.

BatchGraph (Data Structure for a Batch of Graphs)

class tf_geometric.BatchGraph(x, edge_index, node_graph_index, edge_graph_index, y=None, edge_weight=None, graphs=None)

Batch graph wrap a batch of graphs into a single graph, where each nodes has an unique index and a graph index. The node_graph_index is the index of the corresponding graph for each node in the batch. The edge_graph_index is the index of the corresponding edge for each node in the batch.

__init__(x, edge_index, node_graph_index, edge_graph_index, y=None, edge_weight=None, graphs=None)
Parameters
  • x – Tensor/NDArray, shape: [num_nodes, num_features], node features

  • edge_index – Tensor/NDArray, shape: [2, num_edges], edge information. Each column of edge_index (u, v) represents an directed edge from u to v. Note that it does not cover the edge from v to u. You should provide (v, u) to cover it.

  • node_graph_index – Tensor/NDArray, shape: [num_nodes], graph index for each node

  • edge_graph_index – Tensor/NDArray/None, shape: [num_edges], graph index for each edge

  • y – Tensor/NDArray/None, any shape, graph label. If you want to use this object to construct a BatchGraph object, y cannot be a scalar Tensor.

  • edge_weight – Tensor/NDArray/None, shape: [num_edges]

  • graphs – list[Graph], original graphs

convert_data_to_tensor(inplace=False)

Convert all graph data into Tensors. All corresponding properties will be replaces by their Tensor versions.

Returns

The Graph object itself.

convert_edge_to_directed(merge_mode='sum')

Each column of edge_index (u, v) represents an directed edge from u to v. Note that it does not cover the edge from v to u. You should provide (v, u) to cover it. This is not convenient for users. Thus, we allow users to provide edge_index in undirected form and convert it later. That is, we can only provide (u, v) and convert it to (u, v) and (v, u) with convert_edge_to_directed method.

Deprecated since version 0.0.84: Use to_directed(inplace=True) instead.

Returns

to_directed(merge_mode='sum', inplace=False)

Each column of edge_index (u, v) represents an directed edge from u to v. Note that it does not cover the edge from v to u. You should provide (v, u) to cover it. This is not convenient for users. Thus, we allow users to provide edge_index in undirected form and convert it later. That is, we can simply provide (u, v) and convert it to (u, v) and (v, u) with convert_edge_to_directed method.

Returns

If inplace is False, return a new graph with directed edges. Else, return the current graph with directed edges.