Python|為什么人工智能用Python?Python到底有什么優勢?

Python|為什么人工智能用Python?Python到底有什么優勢?

文章圖片

Python|為什么人工智能用Python?Python到底有什么優勢?

文章圖片


首先 , 雖然Python慢 , 而且膠水 , 但是這個符合算法 , 實現需要快速 , 實現原型+預處理pipeline復雜的現實出境 。 有些時候就算是Python , 我也嫌寫起來怎么這么麻煩 , 繞N多彎路最后才開始寫那模型代碼 。 從糙快猛干的角度來說 , C/C++沒法和Python比 , Python也正因為膠水和簡單的特性才能成為AI目前事實上的通用語言 , 是因為Python適合解決這一類問題 , 這才是根本原因 。

而且 , 能和cuda交互的也不止python一個 , 很多語言都能做到 , 但是并沒有出現各種dsl百花齊放的情況 。 要說膠水 , python也是最強的膠水沒有之一 , 能分詞能斷句還能解析字體 , 這些在一個生態系統里面都能找到對應的庫 , 真的不是一個小的優勢 。 我覺得c/c++雖說底層 , 但是他們核心么?工程上就我的觀察而言 , 除非是開發框架本身 , 或者是做某種應用的高效率實現(比如物體識別) , 其他ai相關從業都是在operator的基礎上來思考的 , 因為這樣效率更高 。

雖然c++當然非常有用 , 但是除非你對于算法本身的確非常有信心 , 并且確信要么無法在python內實現 , 要么python實現效率太低 , 才會有用c++去好好實現一把的價值 。 其他時候 , c++談不上核心 , 算是工具的一種 , 而python才是大家溝通和交流的核心抽象 。 我理解的膠水 , 一般情況下是作為轉接和傳遞的角色 , 很多時候遮掩了關鍵的實現細節 。

而這里的python更像是指揮 , python代碼在這里是對于模型本身高度凝練但是完整的表述 , 和前者有很大區別 。 從這個角度來說 , 說python是真正的“核心” , 我覺得并無不妥 。 另外 , 底下的計算庫也未必是c/c++的 , 只不過通常會有c接口 。 人工智能會涉及大量的密集計算 , 這是純python的弱項 , 但人工智能不單單是密集計算 。 python+計算庫能很好的適應這種場景 。

【Python|為什么人工智能用Python?Python到底有什么優勢?】最后 , python不是因為膠水特性才作為人工智能首選 , 而是因為簡單快速聚焦問題本身而不是繁瑣底層細節 , 或者說算法和模型才是人工智能核心 , 并非某個語言 。 非要說c或c++ , 那我也可以說并行分布式計算也是核心 。 我是覺得 , 主要是python語法簡單容易上手 , 所以門檻低 , 非計算機專業可以很快上手寫代碼 , 另外就是python是腳本語言 , 解釋執行 , 在科研方面有很多優勢 。

    相關經驗推薦