name_scope

注意:该API仅支持【静态图】模式

该函数为operators生成不同的命名空间。该函数只用于调试和可视化,不建议用在其它方面。

  • 参数:
    • prefix (str,可选) - 名称前缀。默认值为None。

示例代码

  1. import paddle.fluid as fluid
  2. with fluid.name_scope("s1"):
  3. a = fluid.data(name='data', shape=[None, 1], dtype='int32')
  4. b = a + 1
  5. with fluid.name_scope("s2"):
  6. c = b * 1
  7. with fluid.name_scope("s3"):
  8. d = c / 1
  9. with fluid.name_scope("s1"):
  10. f = fluid.layers.pow(d, 2.0)
  11. with fluid.name_scope("s4"):
  12. g = f - 1
  13.  
  14. # 没有指定的话默认OP在default main program中。
  15. for op in fluid.default_main_program().block(0).ops:
  16. # elementwise_add在/s1/中创建
  17. if op.type == 'elementwise_add':
  18. assert op.desc.attr("op_namescope") == '/s1/'
  19. # elementwise_mul在/s1/s2中创建
  20. elif op.type == 'elementwise_mul':
  21. assert op.desc.attr("op_namescope") == '/s1/s2/'
  22. # elementwise_div在/s1/s3中创建
  23. elif op.type == 'elementwise_div':
  24. assert op.desc.attr("op_namescope") == '/s1/s3/'
  25. # elementwise_sum在/s4/中创建
  26. elif op.type == 'elementwise_sub':
  27. assert op.desc.attr("op_namescope") == '/s4/'
  28. # pow在/s1_1/中创建
  29. elif op.type == 'pow':
  30. assert op.desc.attr("op_namescope") == '/s1_1/'