为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?
其實TensorFlow大部分內核并不是用Python編寫的 :它是高度優化了C++和CUDA(Nvidia用于編程GPU的語言)的組合。 相反,通常它是使用了Eigen (高性能C ++和CUDA庫)和NVidia的cuDNN (用于NVidia GPU的非常優化的DNN庫,用于卷積等功能)。
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的東西。
總結
以上是生活随笔為你收集整理的为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么要学C语言及C语言存在的意义,新手
- 下一篇: Python作为机器学习语言的老大,跟在