玩轉TensorFlow?你需要知道這30功能
雷鋒網 AI 科技評論按:TensorFlow 是目前最流行的深度學習庫,它是 Google 開源的一款人工智慧學習系統。Tensor 的意思是張量,代表 N 維數組;Flow 的意思是流,代表基於數據流圖的計算。把 N 維數字從流圖的一端流動到另一端的過程,就是人工智慧神經網路進行分析和處理的過程。
最近,twitter 上有一位 Google AI 工程師總結了 TensorFlow 的 30 個主要功能,雷鋒網 AI 科技評論整理如下。
在過去幾年,有關 TensorFlow 的知識系統佔據了我的大腦。與其它一些更新的框架相比,TensorFlow 的功能並不是很多。
我對這個產品投入全心的思考並寫下了我的想法,下面是一條接一條不斷擴展的清單。對此,你準備好了嗎?
1)TensorFlow 擴展(TFX)
大家都知道我特別喜歡用 TFX 以及它的全套工具來把機器學習模型部署到生產環境中。如果你關心如何使模型保持最新並監控它們,那麼你可以了解一下這個產品、看看它的論文。
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 視頻:
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
via DynamicWebPaige"s Twitter,雷鋒網 AI 科技評論整理。
※Project Fi 更名為 Google Fi,支持多數 Android 機型和 iPhone
TAG:雷鋒網 |