新聞中心
我們懷著激動(dòng)的心情與大家分享 TensorFlow 調(diào)試程序 (tfdbg),這個(gè)工具可以簡(jiǎn)化 TensorFlow 中對(duì)機(jī)器學(xué)習(xí) (ML) 模型的調(diào)試。

創(chuàng)新互聯(lián)是專業(yè)的株洲網(wǎng)站建設(shè)公司,株洲接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行株洲網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
TensorFlow 是 Google 的開源 ML 內(nèi)容庫(kù),基于數(shù)據(jù)流圖表。一個(gè)典型的 TensorFlow ML 程序包括兩個(gè)獨(dú)立的階段:
- 利用內(nèi)容庫(kù)的 Python API 將 ML 模型設(shè)置為數(shù)據(jù)流圖表;
- 利用 Session.run() 方法在圖表上訓(xùn)練或執(zhí)行推理。
如果在第二階段(即 TensorFlow 運(yùn)行時(shí))出現(xiàn)錯(cuò)誤和缺陷,將難以進(jìn)行調(diào)試。
要了解出現(xiàn)這種情況的原因,請(qǐng)注意對(duì)標(biāo)準(zhǔn) Python 調(diào)試程序而言,Session.run() 調(diào)用實(shí)際上是單個(gè)語(yǔ)句,它并不會(huì)公開運(yùn)行中圖表的內(nèi)部結(jié)構(gòu)(節(jié)點(diǎn)及其連接)和狀態(tài)(節(jié)點(diǎn)的輸出數(shù)組 或 張量)。gdb 等較低級(jí)別的調(diào)試程序在組織堆疊框架和變量值時(shí)無法令其與 TensorFlow 圖表操作產(chǎn)生關(guān)聯(lián)。專業(yè)級(jí)運(yùn)行時(shí)調(diào)試程序是 TensorFlow 用戶最常提出的功能請(qǐng)求之一。
tfdbg 滿足了這一運(yùn)行時(shí)調(diào)試需求。讓我們通過一段簡(jiǎn)短的代碼來了解 tfdbg 的實(shí)用效果,這段代碼的作用是建立并運(yùn)行一個(gè)簡(jiǎn)單的 TensorFlow 圖表,以通過梯度下降法擬合一個(gè)簡(jiǎn)單的線性方程。
正如本例中突出顯示的線條所示,會(huì)話對(duì)象包裝成一個(gè)用于調(diào)試的類 (LocalCLIDebugWrapperSession),因此調(diào)用 run() 方法會(huì)啟動(dòng) tfdbg 的命令行界面 (CLI)。您可以利用鼠標(biāo)點(diǎn)擊或命令執(zhí)行一遍連續(xù)運(yùn)行調(diào)用,檢查圖表的節(jié)點(diǎn)及其屬性,通過中間張量列表將圖表中所有相關(guān)節(jié)點(diǎn)完整的執(zhí)行歷史記錄可視化。通過使用 invoke_stepper 命令,您可以讓 Session.run() 調(diào)用在“步進(jìn)器模式”下執(zhí)行,在這種模式下,您可以步進(jìn)到自己選擇的節(jié)點(diǎn),觀察并修改其輸出,然后再執(zhí)行進(jìn)一步的分步調(diào)試,其運(yùn)行方式與調(diào)試過程語(yǔ)言(例如 gdb 或 pdb)類似。
在開發(fā) TensorFlow ML 模型時(shí)一類經(jīng)常遇到的問題是,因溢出、除零、log(0) 等錯(cuò)誤而導(dǎo)致出現(xiàn)無效數(shù)值(無窮大和 NaN)。在大型 TensorFlow 圖表中,查找此類節(jié)點(diǎn)的根源可能既繁瑣又耗時(shí)。借助于 tfdbg CLI 及其條件斷點(diǎn)支持,您可以快速找到引發(fā)問題的根源節(jié)點(diǎn)。
與打印選項(xiàng)等替代性調(diào)試選項(xiàng)相比,tfdbg 需要改動(dòng)的代碼行數(shù)更少,提供的圖表覆蓋范圍更大,并且提供的調(diào)試體驗(yàn)交互性更強(qiáng)。它可以加快您的模型開發(fā)速度和調(diào)試工作流執(zhí)行速度。它還提供了其他功能,例如離線調(diào)試從服務(wù)器環(huán)境轉(zhuǎn)儲(chǔ)的張量并將其與 tf.contrib.learn 集成。首先,請(qǐng)?jiān)L問此文檔。這篇研究論文對(duì) tfdbg 的設(shè)計(jì)做了更詳盡的展示。
使用 tfdbg 時(shí)要求安裝的*** TensorFlow 版本為 0.12.1。要報(bào)告錯(cuò)誤,請(qǐng)?jiān)?TensorFlow 的 GitHub 問題頁(yè)面上設(shè)立問題。如需獲得一般使用幫助,請(qǐng)?jiān)?StackOverflow 上使用 tensorflow 標(biāo)記發(fā)帖提問。
【本文是專欄機(jī)構(gòu)“谷歌開發(fā)者”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者(微信公眾號(hào):Google_Developers)】
本文名稱:TensorFlow調(diào)試程序介紹
標(biāo)題來源:http://m.5511xx.com/article/dhdophd.html


咨詢
建站咨詢
