衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TensorBoard:圖的直觀展示

Tensorflowers ? 來源:lp ? 2019-03-01 16:24 ? 次閱讀

TensorFlow 計算圖功能十分強大,但也非常復雜。圖的直觀展示可幫助您理解圖并對圖進行調試。以下示例顯示了實際的可視化效果。

TensorFlow 圖的可視化效果。

要查看您自己的圖,請運行 TensorBoard 并將其指向作業的日志目錄,點擊頂部窗格中的 “圖” 標簽,然后使用左上角的菜單選擇適當的運行條目。要深入了解如何運行 TensorBoard 并確保記錄所有必要信息,請參閱TensorBoard:直觀展示學習。

名稱范圍和節點

典型的 TensorFlow 圖可能具有數千個節點 — 數量過多,難以一次性查看,甚至難以使用標準圖工具來進行布置。為了進行簡化,可以對變量名稱設定范圍,然后,直觀展示工具可以使用此信息來為圖中的節點定義層次結構。默認情況下僅顯示該層次結構的頂層。以下示例使用tf.name_scope在hidden名稱作用域下定義了三個操作:

import tensorflow as tfwith tf.name_scope('hidden') as scope: a = tf.constant(5, name='alpha') W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0), name='weights') b = tf.Variable(tf.zeros([1]), name='biases')

這導致出現以下三個 op 名稱:

hidden/alpha

hidden/weights

hidden/biases

默認情況下,直觀展示工具會將這三個名稱收起到一個標作hidden的節點中。其他詳細信息不會丟失。您可以雙擊節點或點擊右上角的橙色+符號以展開節點,然后您將看到alpha、weights和biases三個子節點。

以下真實示例展示了一個更加復雜的節點的初始狀態和展開狀態。

頂級名稱范圍pool_1的初始視圖。點擊右上角的橙色+按鈕或雙擊節點本身即可展開該節點

pool_1名稱范圍的展開視圖。點擊右上角的橙色-按鈕或雙擊節點本身即可收起該名稱范圍

要讓圖易于觀看,按名稱范圍對節點進行分組至關重要。如果您要構建模型,名稱范圍可幫助您控制生成的直觀展示。您的名稱范圍越好,直觀展示的效果也就越棒。

上圖顯示了直觀展示的另一方面。TensorFlow 圖具有兩種連接:數據依賴關系和控制依賴關系。數據依賴關系顯示兩個 op 之間的張量流動,該依賴關系顯示為實線箭頭,而控制依賴關系顯示為虛線。在展開視圖中(上圖右側),所有連接均為數據依賴關系,只有連接CheckNumerics和control_dependency的虛線除外。

還有一個技巧可以簡化布局。大多數 TensorFlow 圖都包含幾個連接至許多其他節點的節點。例如,許多節點可能對初始化步驟存在控制依賴關系。繪制init節點及其依賴項之間的所有邊緣時,會產生極為雜亂的視圖。

為了減輕雜亂,直觀展示工具會將所有高等級節點劃分到右側的輔助區域中,并且不繪制線來表示它們的邊緣。我們不使用線而使用節點圖標來表示連接。分出輔助節點時通常不會移除關鍵信息,因為這些節點通常與簿記函數相關。請參閱下方交互部分,了解如何在主圖和輔助區域之間移動節點。

節點conv_1連接到save。請注意它右側的save節點小圖標

save的級別較高,它將顯示為輔助節點。與conv_1的連接顯示為左側的節點圖標。為了進一步減輕雜亂,由于save有許多連接,我們僅顯示前 5 個連接,并將其余連接縮寫為... 12 more

最后一種結構簡化方法是序列收起。如下所示,序列模體 (motif)(即結構相同但名稱末尾的數字不同的節點)將收起到節點的單個層疊中。對于具有長序列的網絡,這極大地簡化了視圖。對于具有層次結構的節點,雙擊即可展開序列。請參閱下方交互部分,了解如何為一組特定的節點停用/啟用序列收起。

節點序列收起后的視圖

雙擊后顯示的展開視圖的一小部分內容

直觀展示工具為了改進易讀性而采取的最后一項輔助措施是:為常量和總結節點使用特殊圖標。下表對節點符號進行了總結:

交互

通過平移和縮放在圖中導航。點擊并拖動可進行平移,使用滾動手勢可進行縮放。雙擊節點或點擊它的+按鈕可展開代表一組指令的名稱范圍。為了在縮放和平移時輕松跟蹤當前視點,右下角提供了一個小地圖。

要關閉打開的節點,請再次雙擊節點或點擊它的 — 按鈕。您也可以點擊一次以選擇一個節點。該節點的顏色將加深,其相關詳細信息及與其連接的節點將顯示在直觀展示工具右上角的信息卡上。

顯示了conv2名稱范圍的相關詳情的信息卡。輸入和輸出是從名稱范圍內的指令節點的輸入和輸出合并而來。沒有顯示名稱范圍的屬性

顯示了DecodeRaw指令節點的詳細信息的信息卡。除了輸入和輸出以外,該卡還顯示與當前指令關聯的設備和和屬性

TensorBoard 提供了數種方法來改變圖的視覺布局。這不會改變圖的計算語義,但可讓網絡結構變得更加清晰。通過右鍵點擊節點或按下節點信息卡底部的按鈕,您可以對它的布局做出以下更改:

您可在主圖和輔助區域之間移動節點

您可以對一系列節點取消分組,使得序列中的節點不以分組的形式顯示。您同樣可以對取消分組的序列進行重新分組

選中節點也有助于您理解高級別節點。請選擇任意高級別節點,隨后該節點的其他連接所對應的節點圖標也將被選中。此操作可幫助您輕松了解正在保存哪些節點,以及沒有保存哪些節點。

點擊信息卡中的節點名稱即可選中該節點。如有必要,視點將自動平移以便使節點顯示出來。

最后,您可以使用圖例上方的顏色菜單為您的圖選擇兩種配色方案。默認的結構視圖顯示了結構:當兩個高級別節點具有相同的結構時,它們將顯示相同的彩虹色。具有獨特結構的節點顯示為灰色。第二個視圖顯示運行不同指令的設備。名稱范圍根據其內部指令的設備比例來按比例著色。

下圖顯示了一個真實圖的一部分的圖解。

結構視圖:灰色節點具有獨特的結構。橙色conv1和conv2節點具有相同的結構,其他顏色相同的節點同樣如此

設備視圖:名稱范圍根據其內部指令節點的設備比例來按比例著色。此處的紫色代表 GPU,綠色代表 CPU

張量形狀信息

當序列化GraphDef包含張量形狀時,圖可視化工具會使用張量維度來標記邊緣,而邊緣厚度反映總張量大小。要在GraphDef中包括張量形狀,請在對圖執行序列化時,將實際圖對象(如sess.graph中所示)傳遞到FileWriter。下圖顯示了包含張量形狀信息的 CIFAR-10 模型:

包含張量形狀信息的 CIFAR-10 模型

運行時統計信息

通常,收集運行的運行時元數據(例如節點的總內存使用量、總計算時間和張量形狀)很有用。以下代碼示例節選自修改版Estimator MNIST 教程的訓練和測試部分,在該代碼段中,我們記錄了匯總和運行時統計信息。請參閱匯總教程 以詳細了解如何記錄匯總。要查看完整的源代碼,請點擊此處(https://github.com/tensorflow/tensorflow/blob/r1.10/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py)。

# Train the model, and also write summaries. # Every 10th step, measure test-set accuracy, and write test summaries # All other steps, run train_step on training data, & add training summaries def feed_dict(train): """Make a TensorFlow feed_dict: maps data onto Tensor placeholders.""" if train or FLAGS.fake_data: xs, ys = mnist.train.next_batch(100, fake_data=FLAGS.fake_data) k = FLAGS.dropout else: xs, ys = mnist.test.images, mnist.test.labels k = 1.0 return {x: xs, y_: ys, keep_prob: k} for i in range(FLAGS.max_steps): if i % 10 == 0: # Record summaries and test-set accuracy summary, acc = sess.run([merged, accuracy], feed_dict=feed_dict(False)) test_writer.add_summary(summary, i) print('Accuracy at step %s: %s' % (i, acc)) else: # Record train set summaries, and train if i % 100 == 99: # Record execution stats run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) run_metadata = tf.RunMetadata() summary, _ = sess.run([merged, train_step], feed_dict=feed_dict(True), options=run_options, run_metadata=run_metadata) train_writer.add_run_metadata(run_metadata, 'step%d' % i) train_writer.add_summary(summary, i) print('Adding run metadata for', i) else: # Record a summary summary, _ = sess.run([merged, train_step], feed_dict=feed_dict(True)) train_writer.add_summary(summary, i)

此代碼將從第 99 步開始,每隔 100 步發出一次運行時統計。

當您啟動 TensorBoard 并轉至 “圖” (Graph) 標簽時,您現在將在 “會話運行” (Session runs)(與添加了運行元數據的步對應)下看到一些選項。選擇其中一個運行后,系統將為您顯示該步時的網絡快照,并將未使用的節點顯示為淡出。在左側的控件中,您將能夠按總內存或總計算時間為節點著色。此外,點擊節點可顯示確切的總內存量、計算時間和張量輸出大小。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 可視化
    +關注

    關注

    1

    文章

    1200

    瀏覽量

    21033
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60629

原文標題:TensorBoard:圖的直觀展示

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    因為這種主題可以讓用戶直觀的通過主題的預覽來吸引...

    的同時引導瀏覽者去點擊購買,所以我們要選擇圖片展示類的主題,因為這種主題可以讓用戶直觀的通過主題的預覽來吸引用戶瀏覽下去。2. 固定鏈接的設置因為我們希望通過“主題名 + Download”這類關鍵詞來
    發表于 05-23 19:53

    成功解決tensorboard調用eventsouttfevents文件得到網址出現No dashboards are active for the current data set問題

    成功解決tensorboard調用eventsouttfevents文件得到網址出現No dashboards are active for the current data set問題
    發表于 12-21 10:42

    TF之Tensorboard實踐:將神經網絡Tensorboard形式得到eventsouttfevents文件+dos內運行該文件本地服務器輸出到網頁可視化

    TF:TF之Tensorboard實踐:將神經網絡Tensorboard形式得到eventsouttfevents文件+dos內運行該文件本地服務器輸出到網頁可視化
    發表于 12-21 10:43

    TF之CNN:利用sklearn使用dropout解決學習中overfitting的問題+Tensorboard顯示變化曲線

    TF之CNN:利用sklearn(自帶手寫圖片識別數據集)使用dropout解決學習中overfitting的問題+Tensorboard顯示變化曲線
    發表于 12-24 11:36

    Tensorflow之Tensorboard的可視化使用

    TF之Tensorboard:Tensorflow之Tensorboard可視化使用之詳細攻略
    發表于 12-27 10:05

    TensorFlow TensorBoard可視化數據流

    TensorBoard:接下來,打開瀏覽器并輸入地址 http://localhost:6006/(或運行 TensorBoard 命令后收到的鏈接)。你會看到類似于 1 中的
    發表于 07-22 21:26

    機械展示、認識與分析直觀現場教學

    實驗五 機械展示、認識與分析直觀現場教學 一、實驗目的了解各零部件的結構和工作原理,增加感性認識,鞏固課堂教學。
    發表于 03-13 19:00 ?2035次閱讀

    40個動,教你直觀的體會什么是電磁場

    電磁場和電流是高二也是整個高中最難的知識點,很多同學對場沒有一個直觀的概念,今天這40個動,教你直觀的體會什么是電磁場。
    的頭像 發表于 08-25 16:28 ?5903次閱讀
    40個動<b class='flag-5'>圖</b>,教你<b class='flag-5'>直觀</b>的體會什么是電磁場

    環境監控平臺的功能介紹

    平臺界面應可以直觀展示該地區的環境信息、全市因子平均值、有關監測設備的實時信息及設備列表等情況。
    發表于 04-19 09:23 ?973次閱讀

    使用TensorBoard進行機器學習模型分析

      總體而言,TensorBoard 是幫助開發和培訓過程的絕佳工具。Scalar and Metrics、Image Data 和 Hyperparameter 調優的數據有助于提高準確性,而 profiling 工具有助于提高處理速度。
    發表于 06-27 11:41 ?915次閱讀
    使用<b class='flag-5'>TensorBoard</b>進行機器學習模型分析

    使用TensorBoard進行機器學習模型分析

      總體而言,TensorBoard 是幫助開發和培訓過程的絕佳工具。Scalar and Metrics、Image Data 和 Hyperparameter 調優的數據有助于提高準確性,而 profiling 工具有助于提高處理速度。
    的頭像 發表于 07-01 09:44 ?849次閱讀
    使用<b class='flag-5'>TensorBoard</b>進行機器學習模型分析

    使用TensorBoard進行機器學習模型分析

      總體而言,TensorBoard 是幫助開發和培訓過程的絕佳工具。Scalar and Metrics、Image Data 和 Hyperparameter 調優的數據有助于提高準確性,而 profiling 工具有助于提高處理速度。
    發表于 07-10 09:40 ?350次閱讀
    使用<b class='flag-5'>TensorBoard</b>進行機器學習模型分析

    使用TensorBoard的機器學習模型分析

    差異變得至關重要。TensorBoard 有助于可視化模型,使分析變得不那么復雜,因為當人們可以看到問題所在時,調試變得更加容易。
    的頭像 發表于 11-22 16:30 ?522次閱讀

    TensorBoard的使用

    原文鏈接 簡介 TensorBoard是TensorFlow自帶的一個強大的可視化工具,也是一個Web應用程序套件。 使用 進入保存節點目錄,輸入: tensorboard --logdir
    的頭像 發表于 01-12 17:35 ?2499次閱讀

    3D可視化技術如何讓城市規劃信息更直觀展現?

    城市規劃是一個復雜而又多變的過程,需要考慮眾多因素,如地形、氣候、經濟、人口等。傳統的城市規劃信息展示方式主要是通過平面、立面等二維圖像來呈現城市規劃的方案和效果,難以全面展示城市
    的頭像 發表于 05-12 15:23 ?556次閱讀
    KK百家乐官网的玩法技巧和规则 | 百家乐官网是赌博吗| 百家乐官网视频小游戏| 百家乐官网蓝盾有赢钱的吗| 百家乐官网注册赠分| 百家乐官网网上真钱娱乐| 博彩网百家乐中和局| 大发888游戏下载中心| 百家乐官网神算子| 百家乐经验之谈| 威尼斯人娱乐城优惠条件| 蒲城县| 正规百家乐官网游戏下载| 百家乐官网骗局视频| 百家乐代理合作| 百家乐官网网站出售| 百家乐官网免| 太阳城百家乐筹码租| 百家乐平台送彩金| 致胜百家乐下载| 越西县| 24山分金吉凶断| 百家乐官网破解仪恒达| 电脑赌百家乐可靠吗| 南投县| 百家乐官网技巧介绍| 百家乐追号工具| 百家乐官网3带厂家地址| 百家乐娱乐城官方网| 皇冠走地| 广州百家乐官网筹码| 百家乐揽法大全| 现金百家乐官网人气最高| 风水24山那个排第一| 大发888好吗| 金臂百家乐官网注册送彩金| 百家乐网上娱乐城| 博彩网址| 百家乐官网的巧门| 威尼斯人娱乐城信誉lm0| 百家乐官网讯特|