分享

tf.Graph.name_scope

 雪柳花明 2017-03-15

tf.Graph.name_scope(name)

返回一个上下文管理器,为操作创建一个层级的name

一个图维持一个name scope的栈。name_scope(...):声明将一个新的name放入context生命周期的一个栈中。

name参数如下:

  • 一个字符串(不以'/' 结尾)将穿件一个新scope name,在这个scope中,上下文中所创建的操作前都加上name这个前缀。如果name之前用过,将调用self.unique_name(name) 确定调用一个唯一的name
  • 使用g.name_scope(...)捕获之前的scope作为scope:声明将被视为一个“全局”的scope name,这允许重新进入一个已经存在的scope
  • None或空字符串将会重置当前的scope name 为最高级(空)的name scope
[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. #!/user/bin/env python  
  2. # coding=utf-8  
  3.   
  4. import tensorflow as tf  
  5.   
  6. with tf.Graph().as_default() as g:  
  7.     c=tf.constant(5.0,name="c")  
  8.     assert c.op.name=="c"  
  9.     c_1=tf.constant(6.0,name="c")  
  10.     assert c_1.op.name=="c_1"  
  11.   
  12.     #creates a scop called "nested"  
  13.     with g.name_scope("nested") as scope:  
  14.         nested_c=tf.constant(10.0,name="c")  
  15.         assert nested_c.op.name=="nested/c"  
  16.           
  17.         #creates a nested scope called "inner"  
  18.         with g.name_scope("inner"):  
  19.             nested_inner_c=tf.constant(20.0,name="c")  
  20.             assert nested_inner_c.op.name=="nested/inner/c"  
  21.   
  22.         #creates a nested scope called "inner_1"  
  23.         with g.name_scope("inner"):  
  24.             nested_inner_1_c=tf.constant(30.0,name="c")  
  25.             assert nested_inner_1_c.op.name=="nested/inner_1/c"  
  26.   
  27.             #treats 'scope' as an absolute name scope, and   
  28.             #switches to the "nested/" scope.  
  29.             with g.name_scope(scope):  
  30.                 nested_d=tf.constant(40.0,name="d")  
  31.                 assert nested_d.op.name=="nested/d"  
  32.   
  33.                 with g.name_scope(""):  
  34.                     e=tf.constant(50.0,name="e")  
  35.                     assert e.op.name=="e"  
scope自身的name可以被g.name_scope(...)捕获作为一个scope:,把scope name存储到变量scope中。这个值可以用于命名一个操作的最终结果,例如:
[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. inputs=tf.constant(...)  
  2. with g.name_scope('my_layer') as scope:  
  3.     weights=tf.Variable(...,name="weights")  
  4.     biases=tf.Variable(...,name="biases")  
  5.     affine=tf.matmul(inputs,weights)+biases  
  6.     output=tf.nn.relu(affine,name=scope)  






















    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多