《Scikit-Learn與TensorFlow機器學習實用指南》第9章 啟動并運行TensorFlow

來源:ApacheCN《Sklearn 與 TensorFlow 機器學習實用指南》翻譯項目
譯者:@akonwang @WilsonQu
校對:@Lisanaaa @飛龍
TensorFlow 是一款用于數(shù)值計算的強大的開源軟件庫,特別適用于大規(guī)模機器學習的微調。 它的基本原理很簡單:首先在 Python 中定義要執(zhí)行的計算圖(例如圖 9-1),然后 TensorFlow 使用該圖并使用優(yōu)化的 C++ 代碼高效運行該圖。

最重要的是,Tensorflow 可以將圖分解為多個塊并在多個 CPU 或 GPU 上并行運行(如圖 9-2 所示)。 TensorFlow 還支持分布式計算,因此您可以在數(shù)百臺服務器上分割計算,從而在合理的時間內在龐大的訓練集上訓練龐大的神經(jīng)網(wǎng)絡(請參閱第 12 章)。 TensorFlow 可以訓練一個擁有數(shù)百萬個參數(shù)的網(wǎng)絡,訓練集由數(shù)十億個具有數(shù)百萬個特征的實例組成。 這應該不會讓您吃驚,因為 TensorFlow 是 由Google 大腦團隊開發(fā)的,它支持谷歌的大量服務,例如 Google Cloud Speech,Google Photos 和 Google Search。

當 TensorFlow 于 2015 年 11 月開放源代碼時,已有許多深度學習的流行開源庫(表 9-1 列出了一些),公平地說,大部分 TensorFlow 的功能已經(jīng)存在于一個庫或另一個庫中。 盡管如此,TensorFlow 的整潔設計,可擴展性,靈活性和出色的文檔(更不用說谷歌的名字)迅速將其推向了榜首。 簡而言之,TensorFlow 的設計靈活性,可擴展性和生產(chǎn)就緒性,現(xiàn)有框架可以說只有其中三種可用。 這里有一些 TensorFlow 的亮點:
它不僅在 Windows,Linux 和 MacOS 上運行,而且在移動設備上運行,包括 iOS 和 Android。
它提供了一個非常簡單的 Python API,名為 TF.Learn2(
tensorflow.con trib.learn
),與 Scikit-Learn 兼容。正如你將會看到的,你可以用幾行代碼來訓練不同類型的神經(jīng)網(wǎng)絡。之前是一個名為 Scikit Flow(或 Skow)的獨立項目。它還提供了另一個簡單的稱為 TF-slim(
tensorflow.contrib.slim
)的 API 來簡化構建,訓練和求出神經(jīng)網(wǎng)絡。其他幾個高級 API 已經(jīng)在 TensorFlow 之上獨立構建,如 Keras 或 Pretty Tensor。
它的主要 Python API 提供了更多的靈活性(以更高復雜度為代價)來創(chuàng)建各種計算,包括任何你能想到的神經(jīng)網(wǎng)絡結構。
它包括許多 ML 操作的高效 C ++ 實現(xiàn),特別是構建神經(jīng)網(wǎng)絡所需的 C++ 實現(xiàn)。還有一個 C++ API 來定義您自己的高性能操作。
它提供了幾個高級優(yōu)化節(jié)點來搜索最小化損失函數(shù)的參數(shù)。由于 TensorFlow 自動處理計算您定義的函數(shù)的梯度,因此這些非常易于使用。這稱為自動分解(或
autodi
)。它還附帶一個名為 TensorBoard 的強大可視化工具,可讓您瀏覽計算圖表,查看學習曲線等。
Google 還推出了云服務來運行 TensorFlow 表。
最后,它擁有一支充滿熱情和樂于助人的開發(fā)團隊,以及一個不斷成長的社區(qū),致力于改善它。它是 GitHub 上最受歡迎的開源項目之一,并且越來越多的優(yōu)秀項目正在構建之上(例如,查看 https://www.tensorflow.org/ 或 https://github.com/jtoy/awesome-tensorflow)。 要問技術問題,您應該使用 http://stackoverflow.com/ 并用
tensorflow
標記您的問題。您可以通過 GitHub 提交錯誤和功能請求。有關一般討論,請加入 Google 小組。

在本章中,我們將介紹 TensorFlow 的基礎知識,從安裝到創(chuàng)建,運行,保存和可視化簡單的計算圖。 在構建第一個神經(jīng)網(wǎng)絡之前掌握這些基礎知識很重要(我們將在下一章中介紹)。
閱讀全文:http://t.cn/RuoEFFU