AIA (AI Adventures)系列現(xiàn)在已經(jīng)進(jìn)入第五期了。前三期分享當(dāng)中,Yufeng 介紹了機(jī)器學(xué)習(xí)的核心概念、基本邏輯,也介紹了要進(jìn)行機(jī)器學(xué)習(xí)需要經(jīng)過(guò)哪些步驟,并根據(jù)這些基本知識(shí)嘗試使用線性評(píng)估器 API 打造了鳶尾花分類(lèi)模型。今天的分享中,他會(huì)與我們分享一個(gè)非常有力的工具:TensorBoard,讓你能“看穿”模型,監(jiān)測(cè)訓(xùn)練過(guò)程。
為了更方便 TensorFlow 程序的理解、調(diào)試與優(yōu)化,TensorFlow 團(tuán)隊(duì)發(fā)布了一套名為 TensorBoard 的可視化工具。開(kāi)發(fā)者們可以用 TensorBoard 來(lái)展現(xiàn) TensorFlow 圖,繪制圖像生成的定量指標(biāo)圖以及顯示附加數(shù)據(jù)(如其中傳遞的圖像),請(qǐng)看 Yufeng 為大家?guī)?lái)的分享:
當(dāng)你能「看清」問(wèn)題所在時(shí),調(diào)試起來(lái)是最簡(jiǎn)單的。但是當(dāng)大量的訓(xùn)練數(shù)據(jù)如潮水般涌入復(fù)雜模型的時(shí)候,調(diào)試的過(guò)程往往會(huì)變得無(wú)比復(fù)雜。不過(guò)別怕,幸虧有 TensorBoard,一切變得簡(jiǎn)單起來(lái)。
機(jī)器學(xué)習(xí)可不像傳統(tǒng)的編程,它往往變幻莫測(cè)。模型間的細(xì)小差別以及數(shù)據(jù)的質(zhì)量、參數(shù)微調(diào)中的小小改變都可能對(duì)最終成功與否造成巨大的影響。
用 TensorBoard 發(fā)現(xiàn)問(wèn)題所在
只有當(dāng)我們縱覽模型整體結(jié)構(gòu),并跟蹤某些特征數(shù)據(jù)在整個(gè)訓(xùn)練過(guò)程當(dāng)中的變化時(shí),才能有效調(diào)校模型并調(diào)試所「看到」的問(wèn)題。
這一抽象的流程往往難以通過(guò)可視化的方式呈現(xiàn),不過(guò)現(xiàn)在 TensorFlow 內(nèi)置了解決方案將會(huì)帶來(lái)改變。
現(xiàn)在一起來(lái)看看內(nèi)置于 TensorFlow 的可視化方案 — TensorBoard,一個(gè)讓你更能把控大量操作的工具。不論是觀察模型整體結(jié)構(gòu)還是監(jiān)視整個(gè)模型訓(xùn)練過(guò)程。
TensorFlow 在內(nèi)部使用了計(jì)算機(jī)圖形理論的思想。
也就是說(shuō),為了取締傳統(tǒng)意義上兩數(shù)相加的思維,TensorFlow 構(gòu)造了新的加法運(yùn)算,并將之作為參數(shù)傳入,隨后數(shù)值將會(huì)被這一運(yùn)算加在一起。
所以我們回頭思考 TensorFlow 訓(xùn)練過(guò)程,其實(shí)就是將所有操作當(dāng)成圖的一部分來(lái)執(zhí)行的過(guò)程。TensorBoard 可以將這些模型可視化,所以你能看到模型抽象出來(lái)是什么樣子,更讓你得以檢查是否所有部分都按要求組合在了一起。
下面來(lái)個(gè)更復(fù)雜點(diǎn)的例子,同樣是用 TensorFlow 將模型可視化的例子。注意看上圖,TensorFlow 讓我們可以縮放、掃視、展開(kāi)模型的各個(gè)元素以得到更多細(xì)節(jié)。這就是說(shuō),我們可以從不同的抽象層次觀察模型,從而降低了視覺(jué)復(fù)雜度。
并且,TensorBoard 除了向我們展示模型的結(jié)構(gòu),還會(huì)將各項(xiàng)特征值的變化很好布局在圖上。我們會(huì)將精確度、失真、跨熵等拿來(lái)布局觀測(cè),且另一方面,依賴(lài)于模型的眾多特征值往往都非常重要。至于 TensorFlow 的預(yù)置發(fā)射器,它們自帶了一套預(yù)設(shè)值用于在 TensorBoard 中使用。這一特性為后續(xù)使用做好了鋪墊。
TensorBoard 除了上述功能,還能展示包括條形圖、分布圖以及諸如聲音、圖像、文字等與模型共生的數(shù)據(jù)等等大量的信息。不過(guò)關(guān)于那部分的詳細(xì)介紹要等到后面的視頻。
回歸正題,我們來(lái)看看之前一直使用的線性模型在 TensorBoard 當(dāng)中的表現(xiàn)。首先需要啟動(dòng) TensorBoard 并將之指向目標(biāo)模型層次結(jié)構(gòu)及重要中間文件所在的目錄:
tensorboard --logdir=」/tmp/iris_model/」
此項(xiàng)操作會(huì)啟動(dòng)一個(gè)偵聽(tīng) 6006 端口的本地服務(wù)器。
6006 看起來(lái)是不是非常像「GOOG」呢?
我們可以看到一些線性 classifier 默認(rèn)提供的標(biāo)量特征值。稍后可以通過(guò)縮放和展開(kāi)來(lái)研究這些圖像。
雙擊能夠回退到更高的縮放級(jí)別。可見(jiàn),我們的模型訓(xùn)練隨著時(shí)間推移正以逐漸降低的失真井然有序進(jìn)行。并且我們能清晰看到模型訓(xùn)練尚未完成,原因是當(dāng)前的失真下降率仍然較高。它提示我們,也許應(yīng)當(dāng)再多訓(xùn)練一會(huì)兒,進(jìn)而從訓(xùn)練過(guò)程中獲得更多收益。
接下來(lái)看看 Graph 小分頁(yè)。注意看,此時(shí)圖還是非常簡(jiǎn)單的。
我們能通過(guò)點(diǎn)擊小塊兒上面的加號(hào)展開(kāi)查看更詳細(xì)的內(nèi)容。比如,我現(xiàn)在展開(kāi)了「linear」這個(gè)模塊,可以看到它由不少子模塊組成。我們可以通過(guò)滾輪來(lái)縮放視野,也可以通過(guò)點(diǎn)按拖拽來(lái)查看其他部分。
注意我們給特征列的名字,比如此處的 flower_features 在圖中以模塊形式呈現(xiàn)。
這種方式將有助于調(diào)試并了解上面展示的圖中各部分是怎樣聯(lián)結(jié)起來(lái)的。大多數(shù) TensorFlow 的操作是可以命名的,所以這是一個(gè)將模型闡述清楚和觀察當(dāng)前訓(xùn)練進(jìn)展的好機(jī)會(huì)。
今天,我們學(xué)到了簡(jiǎn)單有趣的機(jī)器學(xué)習(xí)模型重要特征值可視化相關(guān)知識(shí)。TensorBoard 將讓你輕松體驗(yàn)到這種樂(lè)趣,并且最妙之處是它已經(jīng)完全內(nèi)置在 TensorFlow 當(dāng)中了。
記住下一次你想要把機(jī)器學(xué)習(xí)過(guò)程可視化時(shí),TensorBoard 是你的不二選擇。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8357瀏覽量
132335 -
tensorflow
+關(guān)注
關(guān)注
13文章
328瀏覽量
60475
原文標(biāo)題:AIA 系列 | 通過(guò) TensorBoard 將模型可視化
文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論