-
1 # SOWORD科技言
-
2 # pentay
C/C++是比較底層的語言,可以對CPU/記憶體等計算機資源特別是硬體進行非常精細的控制,演算法運算做到最精細自然要使用它們。
但是它們的優點自然也是他們的缺點,精細的操作自然需要精細的程式設計,精細的程式設計自然需要繁複的語言設定,比如什麼是指標什麼是指標函式什麼是函式指標……等你搞清這些佶屈聱牙的概念,你大概也沒有寫程式碼的衝動了。更何況,你想寫出高效能的程式碼,這些概念是必須精通的
python有一個很重要的特性,就是所謂的“膠水語言”,“膠水”的意思就是,它可以把不同語言編寫的程式碼模組組合在一起,然後統一透過python去呼叫。其實絕大多數演算法庫都是使用C/C++編寫,然後提供python的介面供使用者使用,畢竟大部分人只需要知道怎麼呼叫封裝好的演算法就好。但你要想實現自己的演算法就必須會C/C++
-
3 # 大學生程式設計指南
從事軟體開發多年,從理論上講演算法適用於任何的程式語言,演算法在實際工作過程中就是為了工作效率,如果什麼事情都是按照窮舉法或者別的序列的方式效率會太低了,演算法能夠極大程度的提升效率,演算法其實就是執行一系列的指令在規定的時間內拿到輸出結果,從這點看時間是存在邊界的,要講求時效性。
說到效率性方面問題就會涉及到程式語言的執行效率,如果不是解決實際的問題,單純比較程式語言執行的效率沒有太大的意義,一件事如果用兩種程式語言都能搞定的情況下,誰用的時間最短而且消耗的精力最小就採用誰,說到python語言在人工智慧裡面算是明星程式語言了,有人稱之為膠水語言,能夠把各種程式語言組合在一起工作,現在很多人喊著學習人工智慧搞定python就能差不多了,人工智慧這個大學科夠我們研究一輩子的,只不過入口的程式語言採用的python,相當於C語言裡面的主函式入口,至於裡面怎麼實現未必都是採用python完成。
現在看多演算法崗位上要求的程式語言基本上C/C++兩種,一旦涉及到演算法涉及到非常複雜的運算,就要講求執行效率,在程式語言裡面機能有面向物件程式設計機制,又能呼叫底層的實現模組,C++是非常合適的程式語言,現在都是在喊著底層的程式語言不吃香了,人工智慧這塊又將推動一大塊,但是入門的門檻提升了許多,普通的c++工程師很難勝任這種職位,既懂得C++又能玩轉高階演算法的高階人才是現在各大企業爭搶的重點。
所以講學了python只能人工智慧的敲門磚,真正底層涉及到複雜的演算法,還得底層語言更加靠得住,在上層呼叫形式上還是採用python方式,底層的最佳化還是離不開C/C++,現在演算法崗位屬於非常稀缺的職位,據說一個博士畢業的高階演算法人才,不是很懂程式設計的都能年薪60+了,可見這個職位是多麼的稀缺。
對於一個真正的技術人員,不要迷信什麼程式語言有多麼的厲害,關鍵看解決實際問題的能力,人工智慧也好,程式設計技巧也罷主要還是為了解決實際問題,最終落實到解決實際能力,也不要過份在自己設定界限一定要學好哪種程式語言,語言語法特性再漂亮距離解決實際問題很遙遠其實意義也不是很大。落實到具體的程式設計師,一個程式設計師要的就是解決問題能力以及實際執行力,不要沉迷於是中級工程師還是高階工程師,概念性的炒作都不如解決實際問題有用。
-
4 # 變調的小丑
這個問題,從企業角度來談,企業要盈利,那就得買產品。 在整個工程中,演算法只是很小的一部分,而所有的業務程式碼,幾乎都是用c/c++寫的,主要還是效能和速度的考慮。
舉個例子,一個模型的後處理程式碼用python寫,執行80ms.用c++寫,6ms執行完。怎麼選?肯定用c++.
在工業界,模型開發,越來越軟體和硬體結合,拋開硬體效能在工業界談模型效能是很搞笑的。
企業中,也有專門只做模型開發的職位,做演算法預言的研究崗位。但是需求量很低。
我公司演算法開發已經形成流水性,模型訓練 好壞,已經不看召回率,精度等這些指標,只要解決場景需求,那就可以包裝了賣錢。
說白了,現在做解決方案,真是賺錢的時候。
目前在參與輕量級模型壓縮和加速平臺建設。接下來兩年,演算法工程師的定位,應該要回歸軟體工程師的本質。
工具的大量湧現,再也不是 你跑了模型就可以說是演算法工程師,不會點工程能力,程式碼,工程師這個職位還是別幹了。而真正做演算法的那些人,要求會更好,畢竟他們又要去開坑新的土壤了。
能用個python就叫演算法工程師的泡沫,是該爆了。 企業追逐人才迴歸理性。
-
5 # Python視覺演算法
簡述:有四個數字,分別是:1、2、3、4
思考:能組成多少個互不相同且無重複數字的三位數?各是多少?
思路:建立一個函式,然後分別設定三個數i,j,k,它們的取值範圍都在1到4,並且三個數都不相同,輸出1*100+j*10+k,
原始碼如下
def main():
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!=j and j!=k and k!=i:
print(int(i*100+j*10+k))
if __name__ == "__main__":
main()
為什麼有些演算法崗位招聘的是C++,而重點不是python?特別是計算機視覺崗位(尤其是自動駕駛領域),多數要求要熟練使用C++。這是為什麼呢?不是說python在人工智慧演算法方面是最佳的嗎?為什麼在機器視覺方面,需要的是C++?
回覆列表
c++是c語言發展得到的,比c語言功能更強,c++在中端與底層開發比較有優勢,比如開發驅動程式,系統應用程式,網站通訊系統,大型遊戲開發等,都是使用c++開發,有人稱“c語言或c++是標準程式設計”。
python是指令碼語言,是用c語言開發的,它和c語言的複雜性相比之下,python簡化了不少。雖然python演算法擴充套件庫眾多,但是在微控制器,終端開發python還是不能執行。