溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TensorFlow命名空間和TensorBoard圖節(jié)點(diǎn)的示例分析

發(fā)布時(shí)間:2021-08-23 10:33:17 來(lái)源:億速云 閱讀:164 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹TensorFlow命名空間和TensorBoard圖節(jié)點(diǎn)的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

一,命名空間函數(shù)

tf.variable_scope 
tf.name_scope 
先以下面的代碼說(shuō)明兩者的區(qū)別

 # 命名空間管理函數(shù)
'''
說(shuō)明tf.variable_scope和tf.name_scope的區(qū)別
'''
def manage_namespace():
 with tf.variable_scope("foo"):
  # 在命名空間foo下獲取變量"bar",于是得到的變量名稱為"foo/bar"。
  a = tf.get_variable("bar",[1]) #獲取變量名稱為“bar”的變量
  print a.name  #輸出:foo/bar:0
 with tf.variable_scope("bar"):
  # 在命名空間bar下獲取變量"bar",于是得到的變量名稱為"bar/bar"。
  a = tf.get_variable("bar",[1])
  print a.name  #輸出:bar/bar:0
 with tf.name_scope("a"):
  # 使用tf.Variable函數(shù)生成變量會(huì)受tf.name_scope影響,于是得到的變量名稱為"a/Variable"。
  a = tf.Variable([1]) #新建變量
  print a.name  #輸出:a/Variable:0

  # 使用tf.get_variable函數(shù)生成變量不受tf.name_scope影響,于是變量并不在a這個(gè)命名空間中。
  a = tf.get_variable("b",[1])
  print a.name  #輸出:b:0
 with tf.name_scope("b"):
  # 使用tf.get_variable函數(shù)生成變量不受tf.name_scope影響,所以這里將試圖獲取名稱
  # 為“b”的變量。然而這個(gè)變量已經(jīng)被聲明了,于是這里會(huì)報(bào)重復(fù)聲明的錯(cuò)誤
  tf.get_variable("b",[1])#提示錯(cuò)誤

二,TensorBoard計(jì)算圖查看

1 以以下代碼實(shí)例,為指定任何的命名空間

def practice_num1():
# 練習(xí)1: 構(gòu)建簡(jiǎn)單的計(jì)算圖
 input1 = tf.constant([1.0, 2.0, 3.0],name="input1")
 input2 = tf.Variable(tf.random_uniform([3]),name="input2")
 output = tf.add_n([input1,input2],name = "add")

#生成一個(gè)寫日志的writer,并將當(dāng)前的tensorflow計(jì)算圖寫入日志
 writer = tf.summary.FileWriter(ROOT_DIR + "/log",tf.get_default_graph())
 writer.close()

如何使用TensorBoard的過程不再介紹。查看未指明命名空間的運(yùn)算圖

TensorFlow命名空間和TensorBoard圖節(jié)點(diǎn)的示例分析

2 修改代碼制定命名空間之后的代碼

def practice_num1_modify():
 #將輸入定義放入各自的命名空間中,從而使得tensorboard可以根據(jù)命名空間來(lái)整理可視化效果圖上的節(jié)點(diǎn)
 # 練習(xí)1: 構(gòu)建簡(jiǎn)單的計(jì)算圖
 with tf.name_scope("input1"):
  input1 = tf.constant([1.0, 2.0, 3.0],name="input1")
 with tf.name_scope("input2"):
  input2 = tf.Variable(tf.random_uniform([3]),name="input2")
 output = tf.add_n([input1,input2],name = "add")

#生成一個(gè)寫日志的writer,并將當(dāng)前的tensorflow計(jì)算圖寫入日志
 writer = tf.summary.FileWriter(ROOT_DIR + "/log",tf.get_default_graph())
 writer.close()

查看運(yùn)算圖

TensorFlow命名空間和TensorBoard圖節(jié)點(diǎn)的示例分析

上圖只包含命名的兩個(gè)命名空間的節(jié)點(diǎn),我們可以點(diǎn)擊名稱“input2”的圖標(biāo)上的+號(hào),展開該命名空間

TensorFlow命名空間和TensorBoard圖節(jié)點(diǎn)的示例分析

效果:通過命名空間可以整理可視化效果圖上的節(jié)點(diǎn),使可視化的效果更加清晰。

以上是“TensorFlow命名空間和TensorBoard圖節(jié)點(diǎn)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI