tutorials.examples.train_graph_triangle

Minimal training example for a graph-building environment with node addition.

This script demonstrates training a GFlowNet on a generic graph-building task where the policy can ADD_NODE, ADD_EDGE, or EXIT. The reward here encourages forming an undirected triangle (3 nodes, 3 edges).

Run:

python tutorials/examples/train_graph_build_nodes.py –device cpu –plot

Attributes

parser

Classes

TriangleReward

Reward high if the graph is an undirected triangle, else a small epsilon.

Functions

init_env(device)

init_gflownet(env, embedding_dim, num_conv_layers, device)

main(args)

render_states(states, evaluator)

Module Contents

class tutorials.examples.train_graph_triangle.TriangleReward(reward_val=100.0, eps_val=1e-06, device='cpu')

Reward high if the graph is an undirected triangle, else a small epsilon.

  • Undirected triangle: exactly 3 nodes and edges {(0,1),(1,2),(0,2)} ignoring labels.

Parameters:
  • reward_val (float)

  • eps_val (float)

  • device (torch.device | str)

__call__(states)
Parameters:

states (gfn.states.GraphStates)

Return type:

torch.Tensor

device
eps_val = 1e-06
reward_val = 100.0
tutorials.examples.train_graph_triangle.init_env(device)
Parameters:

device (torch.device)

Return type:

gfn.gym.graph_building.GraphBuilding

tutorials.examples.train_graph_triangle.init_gflownet(env, embedding_dim, num_conv_layers, device)
Parameters:
Return type:

gfn.gflownet.trajectory_balance.TBGFlowNet

tutorials.examples.train_graph_triangle.main(args)
Parameters:

args (argparse.Namespace)

Return type:

None

tutorials.examples.train_graph_triangle.parser
tutorials.examples.train_graph_triangle.render_states(states, evaluator)
Parameters: