1. 程式人生 > >tensorflow中的名稱作用域

tensorflow中的名稱作用域

背景

在典型的tensorflow應用程式中,可能會有數以千計的計算節點。如此多的節點彙集在一起,難以分析,甚至無法用標準的圖表工具來展示。解決這個問題,一個有效方法就是,為Op/Tensor劃定名稱範圍。

在tensorflow中,這個機制叫名稱作用域(name scope)。它的作用類似C++中的“名稱空間(namespace)”,或java中的“包(package)”。

使用名稱作用域後,就可以將一些Op或Tensor劃分到某個指定的名稱作用域空間,以達到劃片管理、各司其職的效果

示例

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