在典型的tensorflow應用程序中,可能會有數以千計的計算節點。如此多的節點聚集在一塊兒,難以分析,甚至沒法用標準的圖表工具來展現。解決這個問題,一個有效方法就是,爲Op/Tensor劃定名稱範圍。java
在tensorflow中,這個機制叫名稱做用域(name scope)。它的做用相似C++中的「命名空間(namespace)」,或java中的「包(package)」。python
使用名稱做用域後,就能夠將一些Op或Tensor劃分到某個指定的名稱做用域空間,以達到劃片管理、各司其職的效果dom
import tensorflow as tf with tf.name_scope('sunny') as scope: #設置名稱做用域'sunny' a = tf.constant(5, name='forsch') print(a.name) weights = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0), name='weights') print(weights.name) bias = tf.Variable(tf.zeros([1]), name='biases') print(bias.name) with tf.name_scope('wugui') as scope: #設置名稱做用域'wugui' weights = tf.Variable([1.0, 2.0], name='weights') print(weights.name) bias = tf.Variable([0.3], name='biases') print(bias.name) sess = tf.Session() writer = tf.summary.FileWriter('./my_graph/2', sess.graph)
sunny/forsch:0 sunny/weights:0 sunny/biases:0 wugui/weights:0 wugui/biases:0