小程序开发语言python_小程序是用什么语言开发的?5种最佳语言分享
你應(yīng)該學(xué)習(xí)哪種編程語(yǔ)言來(lái)探索AI的深度?當(dāng)然,你會(huì)需要一個(gè)擁有許多優(yōu)秀機(jī)器學(xué)習(xí)和深度學(xué)習(xí)庫(kù)的語(yǔ)言。它還應(yīng)具有良好的運(yùn)行時(shí)性能,良好的工具支持,大量程序員社區(qū)以及健康的支持包生態(tài)系統(tǒng)。這仍然留下了很多不錯(cuò)的選擇。
下面是我選擇AI開(kāi)發(fā)的五種最佳編程語(yǔ)言。其中一些語(yǔ)言正在興起,而其他語(yǔ)言似乎正在滑落。幾個(gè)月后回來(lái),你可能會(huì)發(fā)現(xiàn)這些排名已經(jīng)發(fā)生了變化。
1. Python
第一,它是Python。它怎么可能是其他的,真的嗎?盡管有令人生氣的關(guān)于Python的東西 - 空格,Python 2.x和Python 3.x之間的巨大差異,五種不同的打包系統(tǒng)都以不同的方式打破了 - 如果你正在做AI工作,你幾乎肯定會(huì)在某些時(shí)候使用Python。
Python中可用的庫(kù)在其他語(yǔ)言中幾乎是無(wú)與倫比的。NumPy已經(jīng)變得如此無(wú)處不在,它幾乎是張量操作的標(biāo)準(zhǔn)API,Pandas將R的強(qiáng)大而靈活的數(shù)據(jù)框帶入Python。對(duì)于自然語(yǔ)言處理(NLP),您擁有令人尊敬的NLTK和快速的SpaCy。對(duì)于機(jī)器學(xué)習(xí),有經(jīng)過(guò)測(cè)試的Scikit-learn。而且,當(dāng)涉及到深學(xué)習(xí),目前所有的庫(kù)(的TensorFlow,PyTorch,Chainer,阿帕奇MXNet,Theano等)是有效的Python的第一個(gè)項(xiàng)目。
如果您正在閱讀關(guān)于arXiv的尖端深度學(xué)習(xí)研究,那么您幾乎可以肯定會(huì)在Python中找到源代碼。然后還有Python生態(tài)系統(tǒng)的其他部分。雖然IPython已經(jīng)成為Jupyter Notebook,并且以Python為中心,但您仍然會(huì)發(fā)現(xiàn)絕大多數(shù)Jupyter Notebook用戶(hù)以及大多數(shù)在線(xiàn)共享的筆記本都使用Python。
沒(méi)有繞過(guò)它。Python是人工智能研究的前沿語(yǔ)言,這是您可以找到機(jī)器學(xué)習(xí)和深度學(xué)習(xí)框架最多的語(yǔ)言,也是人工智能領(lǐng)域幾乎所有人都會(huì)說(shuō)的語(yǔ)言。由于這些原因,盡管您的作者每天至少詛咒一次空白問(wèn)題,Python仍然是人工智能編程語(yǔ)言中的首例。
2、Java系列
JVM系列語(yǔ)言(Java,Scala,Kotlin,Clojure等)也是AI應(yīng)用程序開(kāi)發(fā)的絕佳選擇。無(wú)論是自然語(yǔ)言處理(CoreNLP),張量運(yùn)算(ND4J)還是完整的GPU加速深度學(xué)習(xí)堆棧(DL4J),您都可以使用大量庫(kù)來(lái)管理流水線(xiàn)的各個(gè)部分。另外,您還可以輕松訪(fǎng)問(wèn)Apache Spark和Apache Hadoop等大數(shù)據(jù)平臺(tái)。
Java是大多數(shù)企業(yè)的通用語(yǔ)言,在Java 8和Java 9中提供了新的語(yǔ)言結(jié)構(gòu),編寫(xiě)Java代碼并不是我們中許多人所記得的可惡的體驗(yàn)。使用Java編寫(xiě)人工智能應(yīng)用程序可能會(huì)讓人覺(jué)得無(wú)聊,但它可以完成工作,并且可以將所有現(xiàn)有的Java基礎(chǔ)架構(gòu)用于開(kāi)發(fā),部署和監(jiān)視。
3. C / C ++
在開(kāi)發(fā)AI應(yīng)用程序時(shí),C / C ++不太可能是您的首選,但如果您在嵌入式環(huán)境中工作,并且無(wú)法承受Java虛擬機(jī)或Python解釋器的開(kāi)銷(xiāo),那么C / C ++就是回答。當(dāng)你需要從系統(tǒng)中抽取最后一點(diǎn)的性能時(shí),你需要回到可怕的指針世界。
值得慶幸的是,現(xiàn)代C / C ++可以很好寫(xiě)(誠(chéng)實(shí)!)。您可以選擇一些方法。您可以使用CUDA等庫(kù)來(lái)編寫(xiě)自己的代碼,直接在GPU上運(yùn)行,也可以使用TensorFlow或Caffe獲取靈活的高級(jí)API訪(fǎng)問(wèn)權(quán)限。后者還允許您導(dǎo)入數(shù)據(jù)科學(xué)家可能用Python構(gòu)建的模型,然后以C / C ++提供的所有速度在生產(chǎn)環(huán)境中運(yùn)行它們。
留意Rust在未來(lái)一年的空間中所做的工作。結(jié)合C / C ++的速度與類(lèi)型和數(shù)據(jù)安全性,Rust是實(shí)現(xiàn)生產(chǎn)性能而不會(huì)造成安全性問(wèn)題的最佳選擇。并且TensorFlow綁定已經(jīng)可用。
4. JavaScript
JavaScript的?究竟是怎么回事?那么,谷歌最近發(fā)布了TensorFlow.js,這是一個(gè)WebGL加速庫(kù),允許您在Web瀏覽器中訓(xùn)練和運(yùn)行機(jī)器學(xué)習(xí)模型。它還包括Keras API以及加載和使用在常規(guī)TensorFlow中訓(xùn)練過(guò)的模型的功能。這可能會(huì)吸引大量開(kāi)發(fā)人員涌入AI領(lǐng)域。雖然JavaScript目前對(duì)機(jī)器學(xué)習(xí)庫(kù)的訪(fǎng)問(wèn)權(quán)限與此處列出的其他語(yǔ)言不同,但很快開(kāi)發(fā)人員將在他們的網(wǎng)頁(yè)中添加神經(jīng)網(wǎng)絡(luò),與添加React組件或CSS屬性幾乎相同。同時(shí)授權(quán)和恐嚇。
TensorFlow.js仍處于早期階段。目前它在瀏覽器中工作,但不在Node.js中。它還沒(méi)有實(shí)現(xiàn)完整的TensorFlow API。不過(guò),我預(yù)計(jì)到2018年底,這兩個(gè)問(wèn)題都將基本得到解決,并且AI的JavaScript入侵將在此后不久進(jìn)行。
5. R
R進(jìn)入前五名的底部,并且趨向下行。R是數(shù)據(jù)科學(xué)家喜歡的語(yǔ)言。但是,其他程序員發(fā)現(xiàn)R在第一次遇到它時(shí)感到有些困惑,因?yàn)樗捎昧艘詳?shù)據(jù)框架為中心的方法。如果您有一組專(zhuān)門(mén)的R開(kāi)發(fā)人員,那么使用與TensorFlow,Keras或H2O進(jìn)行研究,原型設(shè)計(jì)和實(shí)驗(yàn)的集成是有意義的,但是我不愿推薦R用于生產(chǎn)用途。
其他AI編程選項(xiàng)
當(dāng)然,Python,Java,C / C ++,JavaScript和R并不是AI編程唯一可用的語(yǔ)言。讓我們看看三種編程語(yǔ)言,它們并沒(méi)有完全進(jìn)入我們前五名的上升和下降。
LUA
幾年前,Lua在人工智能領(lǐng)域處于領(lǐng)先地位。借助Torch框架,Lua是深度學(xué)習(xí)開(kāi)發(fā)中最受歡迎的語(yǔ)言之一,您仍然會(huì)在GitHub上遇到許多歷史深入的學(xué)習(xí)工作,這些工作通過(guò)Lua / Torch定義了模型。我認(rèn)為,為了研究和查看人們以前的工作,熟悉Lua是個(gè)好主意。但隨著TensorFlow和PyTorch等框架的到來(lái),Lua的使用大幅下降。
總結(jié)
以上是生活随笔為你收集整理的小程序开发语言python_小程序是用什么语言开发的?5种最佳语言分享的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Robocode 圆周瞄准算法机器人
- 下一篇: node --- [express项目