中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么調試TensorFlow

發布時間:2021-07-12 16:51:07 來源:億速云 閱讀:162 作者:chen 欄目:大數據

本篇內容主要講解“怎么調試TensorFlow”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么調試TensorFlow”吧!

TensorFlow從誕生以來就一直在深度學習框架中穩居老大的位置,雖然自從2018年12月PyTorch 1.0 stable版本正式發布以來,很快減小了差距,但是也難以超越。

怎么調試TensorFlow

TensorFlow的強項在于部署(包括TensorFlow Lite在移動端部署)和運行效率,另外對各種operation的支持特別齊全,基本上你能想到的算子都已經實現好了,直接調用就好。除此之外,Google Brain的各項前沿研究,以及現在DeepMind的很多研究,開源代碼肯定都是基于TensorFlow,比如現在很火的AutoML技術等等,所以成為No.1也是自然而然。

但是又不得不吐槽其調試功能,真是太難用了。這也直接導致了TensorFlow的學習曲線異常之陡,和vim的類似,學起來很難很痛苦,但是學好之后,那是相當地爽。

怎么調試TensorFlow

那么,TensorFlow怎么調試呢?使用斷點還是print?亦或是高大上的tfdbg?都不是。

由于TensorFlow靜態圖的設計(eager模式除外,這個后面單獨討論),設置斷點根本無法獲取實際tensor的值,具體取值都在后臺以C++的方式執行。那print呢?也只能打印出tensor的shape信息。tfdbg,這個官方開發的專用工具該行了吧?不過我建議還是不要嘗試了,不僅要一點一點敲命令,我在debug大型程序的時候,直接卡死。

對了,還有一種暴力方法,我最開始的時候在使用,就是把tensor拉出來sess.run一把,這樣的確可以得到tensor運行的具體值,但是每次要手動改,很麻煩。

好了,神器要出來了:tf.Print. 在老版本的TensorFlow中可以這么用,非常方便:

x = tf.Print(x,[x, x,shape, x[0], …], message=“x debug info”, summarize=100)

其中,x是需要打印的tensor,注意第一個輸入是x和輸出相同,但其實也可以不同,做一些操作,但一般debug不需要,所以等式左邊的輸出也是x.

第二個輸入在方括號內表示需要打印的東西,可以是tensor x的具體值,或者是其shape,slice,甚至是函數。

第三個輸入message用來標識這一處打印,可以自定義字符串。

最后的summarize控制輸出元素的數量,比如100就輸出x的前100個元素。

對于新版的TensorFlow,使用tf.print,語法如下:

        print_op = tf.print(x)

        withtf.control_dependencies([print_op]):

          out = tf.add(x, x)

        sess.run(out)

很方便吧?

雖然不如直接在PyCharm中設置斷點方便,但能把tensor打印出來定位問題也就容易多了。當然,如果是學習代碼,想單步跟蹤,建議使用eager模式,這就和PyTorch的方式非常相近了,當然,犧牲的是運行效率。

到此,相信大家對“怎么調試TensorFlow”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泾川县| 三原县| 洪洞县| 紫金县| 泗阳县| 霍州市| 女性| 巴青县| 鲁甸县| 汉寿县| 临猗县| 行唐县| 江北区| 德清县| 巩留县| 临安市| 黔西| 丽水市| 偃师市| 留坝县| 出国| 寿阳县| 濉溪县| 全州县| 西充县| 阳新县| 吴川市| 开封县| 梅河口市| 神池县| 奇台县| 黄梅县| 临汾市| 革吉县| 南宁市| 公主岭市| 石家庄市| 盐津县| 喀喇| 镇巴县| 灌南县|