色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

一項名為“AutoGraph”的TensorFlow新功能

Tensorflowers ? 來源:未知 ? 作者:李倩 ? 2018-08-15 11:07 ? 次閱讀

今天,我們將介紹一項名為 “AutoGraph” 的 TensorFlow 新功能。AutoGraph 可以將 Python 代碼(包括控制流、print() 和其他 Python 原生功能)轉換為純 TensorFlow 圖代碼。

要在不使用即時執行的情況下編寫 TensorFlow 代碼,您需要進行一些元編程,即編寫一個用于創建圖的程序,然后再執行該圖。這種方式可能會令人困惑,特別是對于新開發者而言。一些特別棘手的情況涉及更復雜的模型,例如使用 if 和 while 的模型,或者具有 print() 等副作用或接受結構化輸入的模型。

那么,我們為什么需要圖呢?圖允許各種優化,如移除常見的子表達式和融合內核。此外,由于圖形成了一種獨立于平臺的計算模型,可簡化分布式訓練和針對各種環境的部署。這對于多個 GPU 或 TPU 上的分布式訓練或者通過TensorFlow Lite在移動或物聯網等其他平臺上分發模型尤為重要。

下面這個簡單示例顯示了您可能要添加到圖的運算:

1def huber_loss(a):

2if tf.abs(a) <= delta: ? ?

3loss = a * a / 2

4else:

5loss = delta * (tf.abs(a) - delta / 2)

6return loss

如果使用即時執行,也可以滿足要求,但是由于 Python 解釋器開銷或錯過程序優化機會,這樣可能會很慢。

要準備好執行圖,您需要進行重寫以使用類似 tf.cond() 的語句,但這可能比較繁瑣并且難以實現。AutoGraph 可以為您自動執行此轉換,既保持了即時編程的簡易性,同時又獲得了圖執行的性能優勢。

在本例中,我們可以使用 autograph.convert() 裝飾函數,AutoGraph 將自動生成可生成圖的代碼。

使用 AutoGraph 時,由于裝飾器的原因,以下代碼:

1@autograph.convert()

2def huber_loss(a):

3if tf.abs(a) <= delta: ? ?

4loss = a * a / 2

5else:

6loss = delta * (tf.abs(a) - delta / 2)

7return loss

在執行時變為以下代碼。

1def tf__huber_loss(a):

2with tf.name_scope('huber_loss'):

3

4def if_true():

5with tf.name_scope('if_true'):

6loss = a * a / 2

7 return loss,

8

9def if_false():

10with tf.name_scope('if_false'):

11 loss = delta * (tf.abs(a) - delta / 2)

12 return loss,

13 loss = ag__.utils.run_cond(tf.less_equal(tf.abs(a), delta), if_true,

14if_false)

15 return loss

然后,您可以將這些代碼視為 TensorFlow 運算進行調用:

1with tf.Graph().as_default():

2x_tensor = tf.constant(9.0)

3

4# The converted function works like a regular op: tensors in, tensors out.

5huber_loss_tensor = huber_loss(x_tensor)

6

7with tf.Session() as sess:

8print('TensorFlow result: %2.2f\n' % sess.run(huber_loss_tensor))

如您所見,AutoGraph 填補了即時執行與圖之間的差距。AutoGraph 接收即時風格的 Python 代碼并將其轉換為生成圖的代碼。

AutoGraph 不僅僅是一組有用的宏,它還使用源代碼轉換來允許替換 Python 語言的任意部分,包括控制流、函數應用和賦值、生成模板代碼,以及重構慣用 Python 以便輕松轉換成圖。

使用任何編譯器,都會對錯誤消息的可讀性產生擔憂;為此,AutoGraph 設置為創建錯誤消息和堆疊追蹤,以顯示原始源代碼中的錯誤源,而不是僅顯示對生成代碼的引用。

可運行示例

那么,AutoGraph 可以為我們做什么呢?以下是一些代碼示例,現在可以直接轉換為圖代碼而無需任何更改。如果您想實際運行所有這些操作,我們提供了一個筆記本,您可以在Colab中打開或在GitHub中查看。

注:GitHub 鏈接https://github.com/tensorflow/models/blob/master/samples/core/guide/autograph.ipynb

接下來,我們使用循環和分支來檢查Collatz 猜想。請注意,出于多樣性考慮,我們將不使用裝飾器,而使用 AutoGraph 的 .to_graph() 函數將其轉換為圖。

1def collatz(a):

2counter = 0

3while a != 1:

4if a % 2 == 0:

5a = a // 2

6else:

7a = 3 * a + 1

8counter = counter + 1

9return counter

10

11graph_mode_collatz = autograph.to_graph(collatz)

12# The code is human-readable, too

13print(autograph.to_code(collatz))

14

15collatz_tensor = graph_mode_collatz(tf.constant(n))

AutoGraph 可以支持任意的嵌套控制流,例如:

1def f(n):

2if n >= 0:

3while n < 5: ? ?

4n += 1

5print(n)

6return n

AutoGraph 允許在循環內向數組追加元素。為此,我們將使用一些 AutoGraph 輔助工具,set_element_type 和 stack。

1def f(n):

2z = []

3# We ask you to tell us the element dtype of the list

4autograph.set_element_type(z, tf.int32)

5for i in range(n):

6z.append(i)

7# when you're done with the list, stack it

8# (this is just like np.stack)

9return autograph.stack(z)

我們還支持 break、continue,甚至 print 和 assert 等語句。轉換后,此代碼段的 Python assert 轉換為使用適當的 tf.Assert 的圖。

1def f(x):

2assert x != 0, 'Do not pass zero!'

3return x * x

能夠輕松向圖添加循環和控制流等,這意味著可以輕松將訓練循環轉移到圖中。您可以在此筆記本中找到相關示例,其中,我們接受一個 RNN 訓練循環并用一個 sess.run() 調用執行。在需要將整個訓練循環傳遞給加速器而不是通過 CPU 控制器管理訓練的情況下,這樣做十分有用。

注:筆記本鏈接

https://colab.research.google.com/github/tensorflow/models/blob/master/samples/core/guide/autograph.ipynb#scrollTo=4LfnJjm0Bm0B

AutoGraph 開啟了構建和訓練模型的新思路。我們期待根據開發者社區的建議為 AutoGraph 添加更多功能,因此歡迎您提交問題并給出建議!

圖性能與即時執行

即時執行非常簡單易用,但圖的速度通常要更快。雖然二者的比較基準較為復雜(并且取決于應用和硬件配置),但在這個簡單的示例中,我們可以看到,從即時切換到大量使用 if 和 while 的 AutoGraph 代碼時,速度有了顯著提升。

最終,AutoGraph 允許您在加速器硬件(如 GPU 和Cloud TPU)上使用動態和流控制較多的模型,這在基于大量數據訓練大型模型時十分必要。

我們剛剛開始著手分析性能。如果您發現某個圖語句的運行速度低于預期,請提交問題!

AutoGraph 和即時執行

雖然使用即時執行時,您仍然可以通過tf.contrib.eager.defun對部分代碼使用圖執行,但這要求您使用 tf.cond() 等 TensorFlow 圖運算。將來,AutoGraph 將與 defun 無縫集成,允許用簡單的即時式 Python 語言編寫圖代碼。實現此功能后,您可以通過選擇性地將即時代碼轉換為圖片段來使用 AutoGraph 加速熱點。

結論

AutoGraph 是一款新工具,可幫您輕松構建能夠在 TensorFlow 圖中輕松運行的直觀、復雜的模型。此工具目前為 contrib 中的實驗性工具,但我們希望盡快將它加入到核心 TensorFlow 中。

跟我們分享您的 AutoGraph 使用體驗!如果您有任何反饋、建議或想法,請提交問題并向TensorFlow 開發者群組發送消息。

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

    關注

    2912

    文章

    44868

    瀏覽量

    375571
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60577

原文標題:AutoGraph 將 Python 轉換為 TensorFlow 圖

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

收藏 人收藏

    評論

    相關推薦

    下圖中的與打開文件相連的枚舉常量是自己一項一項編輯...

    下圖中的與打開文件相連的枚舉常量是自己一項一項編輯的還是自動就有的?
    發表于 03-17 21:39

    51單片機的個引腳是否只能執行一項功能

    51單片機的個引腳是否只能執行一項功能?比如說,控制蜂鳴器的引腳如果用來控制蜂鳴器的話,還可以用作其他的功能來控制其他元件嗎?單片機控制步進電機時,可以另外用電源給步進電機供電嗎?還
    發表于 06-22 18:03

    AppleWatchSeries4兩新功能獲FDA的許可

    據外媒報道,當地時間9月12日,蘋果公司宣布,Apple Watch Series 4的兩新功能獲得了美國食品與藥品管理局(FDA)的許可。其中一項被稱為心電圖(EKG)的心臟監測功能
    發表于 09-17 14:32 ?1445次閱讀

    捷豹F-Pace展開一項名為GLOSA的V2X功能測試

    捷豹路虎集團近日宣布,已在其旗下的捷豹F-Pace車型展開一項名為GLOSA的V2X功能測試,GLOSA全稱為Green Light Optimal Speed Advisory,從其命名可得知,該系統并不會介入車輛的控制,僅提
    的頭像 發表于 11-22 10:17 ?5475次閱讀

    科技巨頭公司結盟,,共同建立一項名為“計算快速鏈接”的新行業標準

    據報道,英特爾與微軟、阿里巴巴、思科、戴爾EMC、Facebook、谷歌、惠普和華為宣布成立聯盟,共同建立一項名為“計算快速鏈接”(Compute Express Link,以下簡稱CXL)的新行業標準,以便為數據中心中央處理單元(CPU)和加速芯片之間提供超快速互連。
    的頭像 發表于 03-28 10:01 ?3127次閱讀

    特斯拉打盹模式新功能,可設置鬧鐘和空調系統

    據外媒報道,特斯拉車主很快就能享受到一項名為“打盹模式”(Nap Mode)的新功能,這項新功能近期將通過車機軟件OTA更新推送給車主。
    的頭像 發表于 01-02 17:07 ?6953次閱讀

    Facebook正在測試一項名為“校園”的新功能

    據報道,Facebook正在測試一項名為“校園”的新功能,大學生可以使用其大學ID登錄并與大學中的其他人建立聯系。學生可以寫下他們的預期畢業年份,專業和輔修學位,甚至還可以輸入宿舍編號以與他人聯系。
    的頭像 發表于 04-22 14:26 ?1751次閱讀

    Netflix向電話應用程序添加了一項新功能

    最近,Netflix向電話應用程序添加了一項新功能,可讓您鎖定屏幕。這些新的屏幕鎖定控件有助于防止您不小心跳到節目或電影的上個或下個部分。
    的頭像 發表于 04-23 14:39 ?1876次閱讀

    Facebook直在努力為WhatApp引入系列新功能

    多設備支持并不是一項新功能。去年我們第次聽說了它。從那時起,跟蹤WhatsApp開發的博客WABetaInfo多次報告了該公司在開發一項功能
    的頭像 發表于 07-29 17:00 ?1811次閱讀

    cnvrg.io是第個集成MIG的ML平臺,這是一項突破性的新功能

    cnvrg.io用于機器學習的AI OS宣布將NVIDIA多實例GPU(MIG)技術與其數據科學平臺進行了原生集成。cnvrg.io是第個集成MIG的ML平臺,這是一項突破性的新功能
    的頭像 發表于 09-16 16:53 ?2570次閱讀

    WhatsApp正在開發一項新功能,它將引入自動刪除對話中發送的圖像

    正如WABeta Info的專家告訴我們的那樣,WhatsApp正在開發一項新功能,它將引入自動刪除對話中發送的圖像,視頻和GIF的功能。在測試版WhatsApp Beta Android
    的頭像 發表于 09-23 16:01 ?1748次閱讀

    WhatsApp正在開發一項新功能

    WhatsApp正在開發一項新功能,該功能將使用戶能夠共享消失得無影無蹤的媒體文件。本周,我們將了解有關此功能的更多詳細信息。對于初學者來說,即將到期的媒體
    的頭像 發表于 09-30 10:22 ?1802次閱讀

    Google帶來一項新功能,用戶可以將照片內容通知互聯網巨頭

    Google Photos Android應用程序的最新更新帶來了一項新功能。借助此功能,用戶可以將其照片內容通知互聯網巨頭。
    的頭像 發表于 11-13 14:12 ?1528次閱讀

    Zoom推出一項軟件新功能

    據外媒報道,視頻會議軟件廠商Zoom推出了一項新的功能——“At-Risk?Meeting?Notifier”:當在線視頻遇到Zoombombing攻擊產生風險時,新增的功能就會像會議發起人發出提醒。?
    的頭像 發表于 12-06 09:03 ?2019次閱讀

    華為公布一項名為“鈉電池復合正極材料及其應用”的發明專利

    近日,華為于4月2日公布一項名為“鈉電池復合正極材料及其應用”的發明專利,該專利技術可實現復合正極材料包括內核和包覆內核的包覆層,內核包括層狀鈉正極活性材料,包覆層材料的脫鈉電勢高于內核。
    的頭像 發表于 04-07 10:54 ?1168次閱讀
    主站蜘蛛池模板: 国产精品99亚发布| 在线中文字幕网站| 久久精品国产色蜜蜜麻豆国语版| abp-146| 一本道高清到手机在线| 色欲久久99精品久久久久久AV | 国产69精品久久久久乱码韩国| 伊人亚洲综合网色| 掀开奶罩边躁狠狠躁软学生| 欧美一区二区三区免费播放| 开心成人社区| 国内精品伊人久久久久| 国产成人 免费观看| 99视频这里只有精品国产| 艺术片 快播| 亚洲AV噜噜狠狠网址蜜桃尤物| 日韩中文字幕欧美在线视频| 男同志china免费视频| 久久精品国产亚洲AV麻豆欧美玲| 国产美女影院| 国产盗摄一区二区三区| 波多结衣一区二区三区| 99久久国产免费福利| 《乳色吐息》无删减版在线观看 | 精品无码久久久久久国产百度| 阿v天堂2017在无码| 999久久久无码国产精蜜柚| 在线观看免费视频播放视频| 亚洲精品国产拍在线观看| 无码日本亚洲一区久久精品| 色欲AV亚洲永久无码精品麻豆| 秋霞影院福利电影| 人人干人人插| 日本bbwhd| 日本色女孩影院| 日韩欧美精品有码在线播放 | 中文在线观看免费网站| 正在播放一区二区| 最近中文字幕高清中文字幕MV| 中文字幕不卡一区二区三区| 又粗又大又爽又黄的免费视频|