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

2020-12-05 雷鋒網

雷鋒網 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 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    HTTP/REST API at:localhost:8501 …$ curl -o /tmp/resnet/resnet_client.py https://raw.githubusercontent.com/tensorflow/serving/master/tensorflow_serving/example/resnet_client.py
  • TensorFlow極速入門
    首先是一些基礎概念,包括計算圖,graph 與 session,基礎數據結構,Variable,placeholder 與 feed_dict 以及使用它們時需要注意的點。最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、tensorflow是什麼?te
  • 從框架優缺點說起,這是一份TensorFlow入門極簡教程
    谷歌今日上線基於 TensorFlow 的機器學習速成課程(中文版)機器之心 GitHub 項目:從零開始用 TensorFlow 搭建卷積神經網絡教程 | 從零開始: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為什麼一定要學
  • 谷歌正式發布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,你應該了解的9件事
    TensorFlow 下載地址:https://www.tensorflow.org/install/TensorFlow 初始教程:https://www.datacamp.com/community/tutorials/tensorflow-tutorial
  • 5個簡單的步驟掌握Tensorflow的Tensor
    在這篇文章中,我們將深入研究Tensorflow Tensor的細節。我們將在以下五個簡單步驟中介紹與Tensorflow的Tensor中相關的所有主題:第一步:張量的定義→什麼是張量?它們非常類似於NumPy數組,並且它們是不可變的,這意味著一旦創建它們就不能被更改。只能使用編輯創建新副本。讓我們看看張量如何與代碼示例一起工作。但是首先,要使用TensorFlow對象,我們需要導入TensorFlow庫。
  • 作為TensorFlow的底層語言,你會用C++構建深度神經網絡嗎?
    隨著 C++ API 的完善,直接使用 C++來搭建神經網絡已經成為可能,本文將向你介紹一種簡單的實現方法。很多人都知道 TensorFlow 的核心是構建在 C++之上的,但是這種深度學習框架的大多數功能只在 Python API 上才方便使用。
  • Tensorflow基礎教程15天之創建Tensor
    Tensor是Tensorflow中使用在計算圖中的最基本的數據單位,我們可以聲明Tensor為variable,或者為Tensor提供placeholer。但首先我們必須知道如何創建Tensor。Tensor準備工作當我們創建Tensor並定義其為Variable時,Tensorflow就計算圖中創建了相應圖形結構。需要指出的一點是,我們創建了Tensor,並不意味著已經將其傳入計算圖。
  • TensorFlow極簡教程:創建、保存和恢復機器學習模型
    繼續之前,也可以閱讀這個 Tensorflow 小入門:https://blog.metaflow.fr/tensorflow-a-primer-4b3fa0978be3#.wxlmweb8h你有必要了解這些信息,因為了解如何保存不同級別的代碼是非常重要的,這可以避免混亂無序。
  • 步履不停:TensorFlow 2.4新功能一覽!
    tf.distribute 的新增功能參數伺服器策略在版本 2.4 中,實驗性引入了 tf.distribute 模塊的支持,可通過 ParameterServerStrategy 和自定義訓練循環對 Keras 模型進行異步訓練。
  • tensorflow初級必學算子
    在之前的文章中介紹過,tensorflow框架的核心是將各式各樣的神經網絡抽象為一個有向無環圖,圖是由tensor以及tensor變換構成;雖然現在有很多高階API可以讓開發者忽略這層抽象,但對於靈活度要求比較高的算法仍然需要開發者自定義網絡圖,所以建議開發者儘量先學習tf1.x
  • 如何使用TensorFlow Hub的ESRGAN模型來在安卓app中生成超分圖片
    在這裡大家可以很容易看出來,雙三次插值生成的圖片要比 ESRGAN 模型生成的超分圖片模糊很多 你可能已經知道,TensorFlow Lite 是 TensorFlow 用於在端側運行的官方框架,目前全球已有超過40億臺設備在運行 TFLite,它可以運行在安卓,iOS,基於 Linux 的 IoT 設備以及微處理器上。
  • 深度解讀TensorFlow,了解它的最新發展!
    Tensorboard是tensorflow內置的一個可視化工具,它通過將tensorflow程序輸出的日誌文件的信息可視化,使得tensorflow程序的理解、調試和優化更加簡單高效。Tensorboard的可視化依賴於tensorflow程序運行輸出的日誌文件,因而tensorboard和tensorflow程序在不同的進程中運行。
  • 分享TensorFlow Lite應用案例
    如何應對 op 缺失的情況   對於移動端用 TF Lite 部署最友好的開發姿勢是在設計模型之處就了解當前的 TF Lite版本哪些 op 是缺失或者功能不完整的,然後在模型設計過程中:   儘量避免使用這些 TF Lite 不支持的 op;   對於不得不使用的情況,也需要結合具體的業務邏輯,優化設計,使得在移動端部署的二次開發的工作量儘可能的小
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    此外,在次項目我還添加了一個視頻後處理功能,同樣使用 multiprocessing 庫來減少處理時間(使用 Tensorflow 原始目標檢測 API 處理時間會非常長)。實時和視頻目標識別都可以在我的個人筆記本電腦上以高性能運行,僅使用 8GB CPU。
  • Tensorflow 2.0的這些新設計,你適應好了嗎?
    通過閱讀這篇文章,熟悉Tensorflow的老用戶可以儘早轉變思維,適應新版本的變化。而新手也可以直接以Tensorflow 2.0的方式思考,至少目前沒有必要急著去學習別的框架。Tensorflow 2.0:為什麼?何時?
  • TensorFlow 2.1指南:keras模式、渴望模式和圖形模式(附代碼)
    那只有你會知道。對我來說,這一刻已經到來了。我一直在使用Keras和Tensorflow的1.x(TF1)在工作和我的個人項目,因為我在這個領域開始。我完全喜歡Keras庫的高級方法和Tensorlfow的低級方法,這些方法可以讓我們在需要更多自定義時在後臺進行更改。儘管我一直是Keras-Tensorflow兼容的忠實擁護者,但始終有一個非常具體的缺點:調試功能。
  • 教程| 如何用TensorFlow在安卓設備上實現深度學習推斷
    以「Ok Google」這個功能為例:用一名用戶的聲音來訓練「Ok Google」,他的手機在接收到這個關鍵詞的時候就會被喚醒。這種小型關鍵詞檢測(small-footprint keyword-spotting,KWS)推斷通常在本地設備上運行,所以你不必擔心服務提供商隨時監聽你的聲音。而雲服務只在你發出指令後才啟動。
  • Tensorflow 2.0 即將入場
    硬碟兼容性:只需修改一些變量名稱,Tensorflow 1.x中導出的模型(checkpoints和模型freeze)就能和Tensorflow 2.0兼容。tf.contrib退出歷史舞臺。其中有維護價值的模塊會被移動到別的地方,剩餘的都將被刪除。換言之,如果你在這之前從沒接觸過Tensorflow,你是幸運的。