name_scope¶
- paddle.static. name_scope ( prefix=None ) [source]
-
Generate hierarchical name prefix for the operators in Static Graph.
Note
This should only used for debugging and visualization purpose. Don’t use it for serious analysis such as graph/program transformations. Don’t use it in dygraph, since it will cause memory leak.
- Parameters
-
prefix (str, optional) – prefix. Default is none.
Examples
import paddle paddle.enable_static() with paddle.static.name_scope("s1"): a = paddle.static.data(name='data', shape=[None, 1], dtype='int32') b = a + 1 with paddle.static.name_scope("s2"): c = b * 1 with paddle.static.name_scope("s3"): d = c / 1 with paddle.static.name_scope("s1"): f = paddle.tensor.pow(d, 2.0) with paddle.static.name_scope("s4"): g = f - 1 # Op are created in the default main program. for op in paddle.static.default_main_program().block(0).ops: # elementwise_add is created in /s1/ if op.type == 'elementwise_add': assert op.desc.attr("op_namescope") == '/s1/' # elementwise_mul is created in '/s1/s2' elif op.type == 'elementwise_mul': assert op.desc.attr("op_namescope") == '/s1/s2/' # elementwise_div is created in '/s1/s3' elif op.type == 'elementwise_div': assert op.desc.attr("op_namescope") == '/s1/s3/' # elementwise_sum is created in '/s4' elif op.type == 'elementwise_sub': assert op.desc.attr("op_namescope") == '/s4/' # pow is created in /s1_1/ elif op.type == 'pow': assert op.desc.attr("op_namescope") == '/s1_1/'