為什麼 Python被Google選為TensorFlow的開發語言呢?使用 Python比C++語言進行機器學習有什麼優勢?
TensorFlow的模型是程式設計師用“一種語言”(很可能是Python!)來表達。 這個模型,是寫在TensorFlow結構中的,如:
h1 = tf.nn.relu(tf.matmul(l1, W1) + b1)
h2 = ...
當Python執行時,實際上並沒有被執行。 相反,實際建立的是一個數據流圖 ,表示採取特定輸入,應用特定操作,將結果提供給其他操作的輸入,等等。 該模型由快速C ++程式碼執行,並且在大多數情況下,操作之間的資料不會被複制回Python程式碼 。
然後,程式設計師通過拉扯節點來驅動這個模型的執行,通常用Python進行訓練,有時在Python中,有時是在原始的C ++中:
sess.run(eval_results)
這一個Python程式(或C ++函式呼叫)使用C ++的程序內呼叫或分散式版本的RPC呼叫C ++ TensorFlow伺服器來告訴它執行,然後複製結果。
所以說,我們再說一下這個問題:為什麼TensorFlow選擇Python作為表達和控制模型訓練而且支援的非常好的語言?
答案很簡單:Python可能是大量資料科學家和機器學習專家用的最舒適的語言,也是易於整合和控制C ++後端的語言,同時也是廣泛使用與谷歌的公司內外和他們的開源產品。 鑑於使用TensorFlow的基本模型,Python的效能並不重要,這是一個很自然的契合。 NumPy也是一個巨大的加分,它可以很容易地在Python中進行預處理(也是高效能),然後將它們提供給TensorFlow,以獲得真正CPU-heavy的東西。