在之前的文章中,我們討論了TensorFlow是什麼。現在,讓我們開始看一下TensorFlow API層次結構。
如同大多數軟體庫一樣,TensorFlow中包含許多抽象層。
最底層的抽象層,是針對不同硬體平台實現的層。除非你的公司自己生產硬體,否則你不可能在此級別上完成大部分的事情。
下一層級是TensorFlow C++ API。 這是你編寫自定義TensorFlow應用程序的方式,你會在C++中實現所需要的功能,並將其註冊為使用TensorFlow運作。這部分請參考有關擴展應用程序的TensorFlow文檔。
然後,TensorFlow將為你提供一個可以使用的python包裝器,就像現有功能一樣。在本文中,我們假設你不是專精ML的研究人員,因此你不必這樣做,但是如果你需要實現自己的自定義應用程式,則可以使用C++來做,一般來說也不會太難。
下一級別的核心Python API是包含許多數值處理代碼,加法、減法、除法、矩陣乘法等的內容。創造變量、創造張量、獲取形狀,張量的所有尺寸以及所有核心基本數值處理內容,一切都在python API中。
然後,有一組Python模組具有對實用神經網絡的高級表現方式,例如:
tf.layers
有一種創造具有真實激活函數的新的隱藏神經元層的方法tf.metrics
有一種計算均方根誤差和輸入數據的方法tf.losses
有使用Logic計算交叉熵的方法tf.estimator
即可。估算器是TensorFlow中的高級API。它知道如何進行訊變、知道如何評估如何創建檢查點、如何保存模型以及如何將其設置為服務。它以明智的方式完成了所有工作,適合大多數機器學習模型和生產。因此,如果你在網路上看到示範的TensorFlow代碼,而沒使用estimator API,則只需忽略該代碼,然後關掉。你不必編寫一堆代碼來進行設備放置以及內存管理和分配,這些都能讓估算器來為你完成。這些就是TensorFlow的抽象級別。Cloud ML引擎與此層次結構正交。不管您以哪種抽象級別編寫TensorFlow代碼,CMLE都會為您提供託管服務。它託管於Tensorlow。因此,你可以在機器集群上的雲上運行TensorFlow,而無需安裝任何軟體或管理任何伺服器。