【TensorFlow】TensorFlow是什麼?

TensorFlow 是一個開源的、基於 Python 的機器學習框架,它由 Google 開發,並在圖形分類、音頻處理、推薦系統和自然語言處理等場景下有着豐富的應用,是目前最熱門的機器學習框架。
除了Python,TensorFlow 也提供了 C/C++、Java、Go、R 等其它編程語言的接口。

任何曾經試圖在 Python 中只利用 NumPy 編寫神經網絡代碼的人都知道那是多麼麻煩。編寫一個簡單的一層前饋網絡的代碼尚且需要 40 多行代碼,當增加層數時,編寫代碼將會更加困難,執行時間也會更長。

TensorFlow 使這一切變得更加簡單快捷,從而縮短了想法到部署之間的實現時間。在本教程中,你將學習如何利用 TensorFlow 的功能來實現深度神經網絡。

TensorFlow 是由 Google Brain 團隊爲深度神經網絡(DNN)開發的功能強大的開源軟件庫,於 2015 年 11 月首次發佈,在 Apache 2.x 協議許可下可用。截至今天,短短的兩年內,其 GitHub 庫大約 845 個貢獻者共提交超過 17000 次,這本身就是衡量 TensorFlow 流行度和性能的一個指標。

圖 1 列出了當前流行的深度學習框架,從中能夠清楚地看到 TensorFlow 的領先地位:
 

TensorFlow的領先地位示意圖
圖 1 TensorFlow的領先地位示意圖


先來了解一下 TensorFlow 究竟是什麼,以及它爲什麼在 DNN 研究人員和工程師中如此受歡迎。

開源深度學習庫 TensorFlow 允許將深度神經網絡的計算部署到任意數量的 CPU 或 GPU 的服務器、PC 或移動設備上,且只利用一個 TensorFlow API。你可能會問,還有很多其他的深度學習庫,如 Torch、Theano、Caffe 和 MxNet,那 TensorFlow 與其他深度學習庫的區別在哪裏呢?包括 TensorFlow 在內的大多數深度學習庫能夠自動求導、開源、支持多種 CPU/GPU、擁有預訓練模型,並支持常用的NN架構,如遞歸神經網絡(RNN)、卷積神經網絡(CNN)和深度置信網絡(DBN)。

TensorFlow 則還有更多的特點,如下:

  • 支持所有流行語言,如 Python、C++Java、R和Go。
  • 可以在多種平臺上工作,甚至是移動平臺和分佈式平臺。
  • 它受到所有云服務(AWS、Google和Azure)的支持。
  • Keras——高級神經網絡 API,已經與 TensorFlow 整合。
  • 與 Torch/Theano 比較,TensorFlow 擁有更好的計算圖表可視化。
  • 允許模型部署到工業生產中,並且容易使用。
  • 有非常好的社區支持。
  • TensorFlow 不僅僅是一個軟件庫,它是一套包括 TensorFlow,TensorBoard 和 TensorServing 的軟件。

谷歌 research 博客列出了全球一些使用 TensorFlow 開發的有趣項目:

  • Google 翻譯運用了 TensorFlow 和 TPU(Tensor Processing Units)。
  • Project Magenta 能夠使用強化學習模型生成音樂,運用了 TensorFlow。
  • 澳大利亞海洋生物學家使用了 TensorFlow 來發現和理解瀕臨滅絕的海牛。
  • 一位日本農民運用 TensorFlow 開發了一個應用程序,使用大小和形狀等物理特性對黃瓜進行分類。

使用 TensorFlow 的項目還有很多。本教程旨在讓讀者理解 TensorFlow 在深度學習模型中的應用,使讀者可以輕鬆地將模型用於數據集並開發有用的應用程序。每章包含一系列處理技術問題、依賴性、代碼和解讀的示例,在每章的最後,還有一個功能完善的深度學習模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章