TensorFlow,為什麼選擇 PyThon 作為開發語言?
這裡是 AI 研習社,我們的問答版塊已經正式推出了!歡迎大家來多多交流~
https://club.leiphone.com/page/question
社長為你推薦來自 AI 研習社問答社區的精華問答。如有你也有問題,歡迎進社區提問。
話不多說,直接上題
問:TensorFlow,為什麼選擇 PyThon 作為開發語言?
為什麼 Python被Google選為TensorFlow 的開發語言呢?使用 Python 比C ++語言進行機器學習有什麼優勢?
來自社友的回答
@aRiceman:
其實TensorFlow大部分內核並不是用Python編寫的 :它是高度優化了C ++和CUDA(Nvidia用於編程GPU的語言)的組合。 相反,通常它是使用了Eigen (高性能C ++和CUDA庫)和NVidia的cuDNN (用於NVidia GPU的非常優化的DNN庫,用於卷積等功能)。
TensorFlow的模型是程序員用「一種語言」(很可能是Python!)來表達。 這個模型,是寫在TensorFlow結構中的,如:
當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開源,矩陣各種運算和操作也挺方便的。
@機器人X:
因為C++學習成本太高。
@熱蘇斯:
Python允許您使用C和C ++創建擴展模塊,與本機代碼進行交互,仍然可以獲得Python為您提供的優勢。
TensorFlow使用Python,但它也包含大量的 C++。
它允許你使用更簡單的介面進行實驗,用Python減少思考量,並通過C++編譯最重要的部分來增加性能。
※alexnet,VGG-16 怎樣調整訓練圖像的尺寸大小不一?強行拉伸和填充會不會影響訓練?
※Python程序員深度學習「四大名著」之一
TAG:AI研習社 |