# dgl.NodeFlow.prop_flow¶

NodeFlow.prop_flow(message_funcs='default', reduce_funcs='default', apply_node_funcs='default', flow_range='__ALL__', inplace=False)[source]

Perform the computation on flows. By default, it runs on all blocks, one-by-one. On block i, it runs pull on nodes in layer i+1, which generates messages on edges in block i, runs the reduce function and node update function on nodes in layer i+1.

Users can specify a list of message functions, reduce functions and node apply functions, one for each block. Thus, when a list is given, the length of the list should be the same as the number of blocks.

Parameters: message_funcs (a callable, a list of callable, optional) – Message functions on the edges. The function should be an Edge UDF. reduce_funcs (a callable, a list of callable, optional) – Reduce functions on the node. The function should be a Node UDF. apply_node_funcs (a callable, a list of callable, optional) – Apply functions on the nodes. The function should be a Node UDF. flow_range (int or a slice or ALL.) – The specified blocks to run the computation. inplace (bool, optional) – If True, update will be done in place, but autograd will break.