玩轉TensorFlow?你需要知道這30功能

2020-12-11 雷鋒網

雷鋒網(公眾號:雷鋒網) AI 科技評論按:TensorFlow 是目前最流行的深度學習庫,它是 Google 開源的一款人工智慧學習系統。Tensor 的意思是張量,代表 N 維數組;Flow 的意思是流,代表基於數據流圖的計算。把 N 維數字從流圖的一端流動到另一端的過程,就是人工智慧神經網絡進行分析和處理的過程。

最近,twitter 上有一位 Goolge AI 工程師、Google AI 的積極宣傳者 Paige Bailey (@DynamicWebPaige)總結了 TensorFlow 的 30 個主要功能,雷鋒網 AI 科技評論整理如下。

在過去幾年,有關 TensorFlow 的知識系統佔據了我的大腦。與其它一些更新的框架相比,TensorFlow 的功能並不是很多。

我對這個產品投入全心的思考並寫下了我的想法,下面是一條接一條不斷擴展的清單。對此,你準備好了嗎?

1)TensorFlow 擴展(TFX)
大家都知道我特別喜歡用 TFX 以及它的全套工具來把機器學習模型部署到生產環境中。如果你關心如何使模型保持最新並監控它們,那麼你可以了解一下這個產品、看看它的論文。

地址是:tensorflow.org/tfx/?hl=zh-cn

2)TensorFlow hub
如果你想在小型數據集上訓練你的模型,或者提高泛化能力,你會需要使用遷移學習。TFHub 模塊使它變得容易,並且可以在 https://tfhub.dev/ 這個開源軟體商店中使用。
TF Hub 的地址是:tensorflow.org/hub/


3)TFX 數據驗證
如何自動確保用於重新訓練模型的數據與最初用於訓練模型的數據具有相同的格式、源、命名約定等。
對於線上訓練來說,這是一個量很大的工作!
https://www.tensorflow.org/tfx/data_validation/?hl=zh-cn


4)TFX -TensorFlow 變換
同樣地,你可能希望用於重新訓練的數據也能被自動進行預處理:對特定特性進行歸一化、將字符串轉換為數值等。Transform 不僅可以對單個樣本進行這些操作,還能批處理數據。
網址是:https://www.tensorflow.org/tfx/transform/?hl=zh-cn

5)TFX 模型分析
我最喜歡用 TensorFlow 模型分析功能去檢查模型的輸入數據或者模型推理過程中可能發生在某一小部分數據上的問題。我可以用它來仔細檢查數據,以確保所有類別的數據都沒有受到負面影響
網址是:https://www.tensorflow.org/tfx/model_analysis/?hl=zh-cn

6)TFX-服務
服務使得部署新算法+實驗變得容易,但是仍然能保持相同的伺服器架構+API。它不僅可以直接支持 TensorFlow 上的模型,也可以支持其它模型。
網址是:https://www.tensorflow.org/serving/?hl=zh-cn

7)TensorBoard
TensorBoard 是 TensorFlow 框架上一個非常酷炫的可視化工具,它也是 TensorFlow 直接自帶的。它可以可視化展現模型運行過程中的日誌,而且對於標量、直方圖、分布、圖、圖像、音頻等都有各自的展示面板。
網址是:https://t.co/CEVbcJTHLP?amp=1

8)TensorFlow Lite (#TFLite)
用 #TFLite 可以在手機和嵌入式設備上部署模型。如果你看到安卓手機上有檢測植物葉子是否有疾病的 APP,或者小型的、具備 AI 技能的機器人,那麼它們很有可能使用了 #TFLite。
網址是:https://t.co/suCsBIeQz4?amp=1

9)TensorFlowJS
這是一個 JavaScript 庫,用於在瀏覽器和 Node.js 上訓練和部署 ML 模型。如果你已經習慣了使用 TensorFlow Playground 和 GAN Playground,TFJS 就是它們背後的支撐技術。TensorFlowJS 的團隊也棒極了!
網址:https://js.tensorflow.org/

10)TensorFlow 上的 Swift
Swift 可以在運行代碼前,捕獲類型錯誤和形狀不匹配的錯誤,並內置了自動微分功能。它帶來了 eager execution 功能,而且讓 TF 的可用性提高了非常多。我還需要多用用這個
網址:https://www.tensorflow.org/swift/

11)Keras
Keras 如今直接集成在 TF 中,也就是 tf.keras。這意味著,如果不想使用低階的模型,那仍然可以用高階 API 的用戶友好性來實現圖形+模型的構建。2.0 版本將會有更多的功能!
網址:https://www.tensorflow.org/guide/keras

12)Tensor2Tensor
Tensor2Tensor 是一個深度學習模型和數據集的開源軟體庫,它可以讓深度學習變得更容易上手,促進機器學習的研究。它同時也提供了何時以及為什麼要部署這些模型的高級指南。
網址:https://github.com/tensorflow/tensor2tensor

13)XLA(線性代數計算加速)
XLA 是線性代數領域特定的編譯器,它優化了 TensorFlow 的計算方式。結果是在計算速度、內存使用和移動平臺的可移植性上都有改進。
不過你先要有一個硬體加速器啊!
網址:https://www.tensorflow.org/xla/

14)邊緣 TPU
為低功耗 IO 設備提供高性能機器學習推理的小型專用集成電路。例如:邊緣 TPU 可以執行最先進的移動視覺模型,如以 100+fps 的速度執行 MobileNet V2 模型,同時還非常地省電。
網址:https://cloud.google.com/edge-tpu/

15)Magenta(這裡把英文原文留下吧,中文翻譯不知所以……)
作為一個音樂家,Magenta 讓我高興得不得了。
可以將 8 鍵輸入映射到一架 88 鍵鋼琴上、自動創建旋律伴奏、使用機器學習來顯示音樂的視覺效果、轉錄曲調、產生新的聲音等等。
網址:https://magenta.tensorflow.org/

16)種子庫
這個功能也很少看到有人討論
種子庫是一個不斷擴展的交互式機器學習示例集合,您可以使用、修改、實驗和補充這些示例來滿足您的需求+用例研究。在種子庫的機器學習項目裡面,甚至有關注公平和偏見的實例!
種子庫的地址是:https://research.google.com/seedbank/

17)GoogleColab 分析工具
這不是 TensorFlow 特有的工具,但是是一個非常好的工具,我不得不提到它!它是一個交互式的 Python 筆記本,能免費使用,可以在 CPU/GPU/TPU 或本地/遠程後端之間切換!

18)Probability 庫
深度學習是很好的,但是,作為一個數據科學家,你可能想告訴你的模型一些特定領域的知識:蒙特卡洛,變分推理,貝葉斯技術,矢量量化自動編碼器等等。
網址是:https://www.tensorflow.org/probability/

19)模型園
這是一個收藏了大量 GoogleAI 和 TensorFlow 社區開源模型的大集合,包括了樣本和代碼片段。從樹到神經元程序的合成都有。
網址是:https://github.com/tensorflow/models

20)Dopamine
這是一個用於原型化強化學習算法的、易於訪問的框架。專注於:實驗的簡單性、靈活性、可靠性和重現性。
備註:谷歌官方還沒有正式發布這個產品!
網址:https://github.com/google/dopamine
Dopamine 團隊甚至開發了一系列的 GoogleColab 筆記本來展示如何使用這個產品!這種用戶友好的做法也讓框架更加地多變。
網址:https://github.com/google/dopamine/blob/master/dopamine/colab/README.md

21)Nucleus 模塊
Nype 是一個 Python 和 C++代碼庫,旨在使對於常見的基因組學的數據如 SAM 或 VCF 更容易被讀取、寫入和分析。它能與 TensorFlow 完美的集合在一起。
網址:https://github.com/google/nucleus

關於 2018 TensorFlow 開發者峰會,請查看 You Tube 視頻:

https://www.youtube.com/watch?v=vdG7uKQ2eKk
22)TensorFlow 研究雲(TFRC)
這是 1000 個谷歌雲 TPU 的集群,為機器學習研究社區提供了總計 180 兆帕的計算能力——而且絕對免費,為機器學習的下一次突破做出自己的貢獻。
網址:https://www.tensorflow.org/tfrc/

23)TensorFlow 社區
這不是一個特定的產品,但是它對 TensorFlow 的生態系統來說至關重要。
谷歌 AI 對社區的新關注點是:以 Edd 為首的功能郵件列表、社交媒體、特殊興趣小組以及 TensorFlow 直接輸入新的/變化的功能。

24)TensorFlow 文檔
你知道我們所有的文件都放在 @ GITHUB 上嗎?歡迎社會各界的貢獻和建議!馬上去問問 @billylamberta 學習如何開始吧!
風格指南:https://www.tensorflow.org/community/documentation
反饋問題:
https://github.com/tensorflow/tensorflow/issues?q=is%3Aopen+is%3Aissue+label%3Atype%3Adocs

25)Rstats
fly_upside_down、rstudio 和 fchollet 為開發者創建了一個 R 接口,它使用高級 #Keras+Estimator API,並在需要在較低級別調整網絡時提供更多的控制。
甚至有一本書是關於這個的:https://tensorflow.rstudio.com/

26)AdaNet
用於自適應學習深層神經網絡的結構/優化權值的算法。如果您想了解更多關於自適應機器學習內核的知識,AdaNet 的教程是一個很好的起點!
相關地址:https://github.com/tensorflow/adanet
關於 AdaNet 的論文:https://arxiv.org/abs/1607.01097

27)Lucid
可解釋性,也就是深層神經網絡是怎麼做出決策的,這對於道德機器學習和將深度學習用於會有顯著影響的場景中是至關重要的。
https://github.com/tensorflow/lucid 這裡有 GoogleColab 的教程、代碼以及 distillpub 的文章

28)概念激活向量測試
類似的道理:大多數可解釋性方法顯示每個輸入特徵(例如,像素)中的重要權重。相反,TCAV 顯示了高層次概念(例如,顏色、性別、種族)的重要性,即人類如何交流。
網址:https://github.com/tensorflow/tcav

29)Cleverhans
如果你的模型的表現高度取決於輸入數據,那麼可以通過操縱或汙染數據來破壞這些模型。在 @goodfellow_ian 的博客上可以看到如何使用 cleverhans 為對抗攻擊的脆弱性評估提供基準庫!
網址是:https://github.com/tensorflow/cleverhans

30)Rust + Haskell 和 C API 的結合
我在前面提到過 rstats 支持,並且希望確保也能提到其它社區項目(TensorFlowSharp 是由 MiguelDigias 創造的)。
可以查看網址:
https://github.com/tensorflow/rust
https://github.com/tensorflow/haskell
https://github.com/migueldeicaza/TensorFlowSharp       

    

via DynamicWebPaige's Twitter,雷鋒網 AI 科技評論整理。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 玩轉TensorFlow Lite:有道雲筆記實操案例分享
    如果只想編譯庫文件,可以編譯 "//tensorflow/contrib/lite/java:tensorflowlite" 這個 target,得到的是 libtensorflowlite_jni.so 庫和相應的 java 層接口。
  • 如何用30天吃掉TensorFlow2.0?
    但吐槽歸吐槽,到了工業界,你是無論如何也繞不開這個框架的。既然非學不可,如何讓這個學習過程更加平滑舒暢呢?近日來,一個畢業於北京吃飯大學的吃貨😋開源了一本叫做 eat tensorflow2.0 in 30 days 的工具書。
  • TensorFlow圖像分類教程
    利用TensorFlow,你可以獲得具有強大能力的複雜功能,其強大的基石來自於TensorFlow的易用性。在這個由兩部分組成的系列中,我將講述如何快速的創建一個應用於圖像識別的卷積神經網絡。TensorFlow計算步驟是並行的,可對其配置進行逐幀視頻分析,也可對其擴展進行時間感知視頻分析。
  • TensorFlow 的簡單例子 | Linux 中國
    你往其中輸入一組數據樣本用以訓練,接著給出另一組數據樣本基於訓練的數據而預測結果。這就是人工智慧了!◈ 支持 GPU 。你可以使用 GPU(圖像處理單元)替代 CPU 以更快的運算。TensorFlow 有兩個版本: CPU 版本和 GPU 版本。開始寫例子前,需要了解一些基本知識。什麼是張量?
  • tensorflow安裝教程
    tensorflow是谷歌開源的人工智慧庫,有最完善的生態支持。是進行人工智慧領域開發和科研的必備工具。本文在windows10下,藉助anaconda建立成功進入tf2.0環境conda activate tf2.0安裝tensorflow2.0 pip install tensorflow==2.0.0-beta1下載的東西挺多,多等一會,最後成功如下命令行運行python,執行import
  • 飛槳上線萬能轉換小工具,教你玩轉TensorFlow、Caffe等模型遷移
    飛槳開發了一個新的功能模塊,叫X2Paddle (Github見參考1),可以支持主流深度學習框架模型轉換至飛槳,包括Caffe、Tensorflow、onnx等模型直接轉換為Paddle Fluid可加載的預測模型,並且還提供了這三大主流框架間的API差異比較,方便我們在自己直接復現模型時對比API之間的差異,深入理解API的實現方式從而降低模型遷移帶來的損失。
  • GitHub標星2000+,如何用30天啃完TensorFlow2.0?
    作者 | 梁雲1991天下苦tensorflow久矣!儘管tensorflow2.0宣稱已經為改善用戶體驗做出了巨大的改進,really easy to use,但大家學得並不輕鬆。但吐槽歸吐槽,到了工業界,你是無論如何也繞不開這個框架的。既然非學不可,如何讓這個學習過程更加平滑舒暢呢?近日來,一個畢業於北京吃飯大學的吃貨開源了一本叫做 eat tensorflow2.0 in 30 days 的工具書。
  • TensorFlow發布JavaScript開發者的機器學習框架TensorFlow.js
    發布新的 TensorFlow 官方博客(http://blog.tensorflow.org/)與 TensorFlow YouTube 頻道;2. 面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js;3.
  • TensorFlow應用實戰 | TensorFlow基礎知識
    mark要讓這一部分運行起來。就得run定義算法的計算圖(Graph)結構把實驗的器材等組裝好使用會話(Session)執行圖的一部分(計算)開始點燃酒精燈等操作Graph tf.Graphhttps://www.tensorflow.org/api_docs/python/tf/Graph如果你沒有顯式的去創建圖,它其實已經幫你註冊了一個默認的圖
  • TensorFlow極速入門
    首先是一些基礎概念,包括計算圖,graph 與 session,基礎數據結構,Variable,placeholder 與 feed_dict 以及使用它們時需要注意的點。最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、tensorflow是什麼?te
  • tensorflow極速入門
    首先是一些基礎概念,包括計算圖,graph 與 session,基礎數據結構,Variable,placeholder 與 feed_dict 以及使用它們時需要注意的點。最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、 tensorflow是什麼?
  • 令人困惑的TensorFlow!
    即使該節點的功能與現有節點相同,即使我們將節點重新分配給同一個變量,或者即使我們根本沒有將其分配給一個變量,結果都是一樣的。這意味著計算任一節點時,計算不會通過邊回流。然而,assign_node 依賴於 zero_node,它需要知道分配了什麼。「副作用」節點支撐著大部分 Tensorflow 深度學習工作流程,所以請確保自己真正理解了在該節點發生的事情。
  • 【官方教程】TensorFlow在圖像識別中的應用
    這篇教程將會教你如何使用Inception-v3。你將學會如何用Python或者C++把圖像分為1000個類別。我們也會討論如何從模型中提取高層次的特徵,在今後其它視覺任務中可能會用到。Python API的使用方法第一次運行classify_image.py腳本時,它會從tensorflow.org官網上下載訓練好的模型。你需要在磁碟上預留約200M的空間。
  • 基於TensorFlow的深度學習實戰
    我們不用關心這張圖具體代表什麼,但你需要知道,其中的橢圓和正方形代表節點,節點就是一些數學函數,你可以將節點分組形成各種數學計算,並得到輸出。箭頭代表流動到各個節點的數據。所以TensorFlow也被成為數據流庫。TensorFlow從入門到應用安裝TensorFlow一般來講,使用Python工作時最好用virtualenv虛擬環境。
  • 《30天吃掉那隻 TensorFlow2.0 》全新TF2.0教程收穫1000 Star
    使用pip安裝的Keras庫同時在tensorflow,theano,CNTK等後端基礎上進行了這種高階接口規範的實現。而tf.keras是在TensorFlow中以TensorFlow低階API為基礎實現的這種高階接口,它是Tensorflow的一個子模塊。tf.keras絕大部分功能和兼容多種後端的Keras庫用法完全一樣,但並非全部,它和TensorFlow之間的結合更為緊密。
  • 運行tensorflow2.0出錯
    has no attribute 'cast'開始看到這個error的時候,不明所以,難道tensorflow沒有這個函數嗎?        最後查了一下,tensorflow是有這個函數的,於是直接把問題copy,搜了一下,找到了解決方法:第一種方法:      重啟編譯器,我使用的是spyder編譯器。
  • tensorflow機器學習模型的跨平臺上線
    這裡唯一的區別是轉化生成PMML文件需要用一個Java庫jpmml-tensorflow來完成,生成PMML文件後,跨語言加載模型和其他PMML模型文件基本類似。tensorflow serving是tensorflow 官方推薦的模型上線預測方式,它需要一個專門的tensorflow伺服器,用來提供預測的API服務。
  • TensorFlow框架簡單介紹
    例如引用下面代碼,當運行時並不會得到加法的結果,而是得到對結果的一個引用:import tensorflow as tf#tf.constant是一個計算,這個計算的結果為一個張量,保存在變量中a = tf.constant([1.0,2.0],name = "a")b = tf.constant([2.0,3.0],name = "b")result = tf.add(a,
  • 谷歌正式發布TensorFlow 1.5,究竟提升了哪些功能?
    機器之心對這次更新的重大改變以及主要功能和提升進行了編譯介紹,原文請見文中連結。GitHub 地址:https://github.com/tensorflow/tensorflow/releases/tag/v1.5.0原始碼(zip):https://github.com/tensorflow/tensorflow/archive/v1.5.0.zip原始碼(tar.gz):https://github.com/tensorflow/tensorflow
  • TensorFlow 2.0開源工具書,30天「無痛」上手
    有人在 GitHub 開源了一個名為《30 天吃掉那隻 TensorFlow2.0》的入門工具書,或許可以讓你無痛上手 TensorFlow 2.0。開源電子書地址:https://lyhue1991.github.io/eat_tensorflow2_in_30_days/GitHub 項目地址:https://github.com/lyhue1991/eat_tensorflow2_in_30_days為什麼一定要學