榮登前十個神級好用的Python函式庫,你知道幾個?(3)

榮登前十個神級好用的Python函式庫,你知道幾個?(3)
榮登前十個神級好用的Python函式庫,你知道幾個?(3)

是哪10個Python函式庫榮登去年最好用?”這些”函式庫你都知道嗎?(3)

本系列文章為【2020年度十大Python函式庫-人工智慧 · 機器學習必備 】的第三篇。上一篇介紹了美化了 Python 錯誤信息的「Pretty Errors」,堪稱是療癒系的工程師的 debug 神器、還有「Diagrams」讓工程師不需要使用設計軟體,只要使用 Python 就能畫出美輪美奐的雲系統架構圖。請點此看上一篇閱讀了解 。

HydraOmegaConf:結構化複雜的機器學習項目

在機器學習項目中做研究與實驗時,總是有五花八門的環境配置工作。在這些非平凡(non-trivial)的應用程式中,配置管理也有可能會變得複雜。是否有結構化的方法來處理這種複雜性?

Hydra 可以藉由「組合」的方式來建構配置,並從命令列或 config 設定檔中覆蓋某些特定的部分,而加快了執行速度。

為了要說明 Hydra 函式庫可簡化一些特定的任務,tryolabs 舉了他們正在試驗的模型的基本架構以及它的多種變化為例。利用 Hydra,可以定義基本配置,然後運行多個工作並對其進行變化:

Hydra 的表親「OmegaConf」為分層配置系統的基礎提供了一致的 API,並支援不同的來源如 YAML、config 設定檔、物件與 CLI 參數。

PyTorch Lightning:PyTorch 版的 Keras,告別沒完沒了的 Debug

PyTorch 是一款熱門的的深度學習框架,可以用簡單的方式建構複雜的 AI 模型。但是當作大量實驗的時候,很多東西都會變得複雜過頭,代碼也隨之變得龐大,此時還是容易出錯。

於是,PyTorch Lightning 就是為了減少錯誤而誕生:它可以重構 PyTorch 代碼、抽出複雜重複的部分,讓工程師可以更專注於核心的建構、實驗也更快更便捷地開展迭代。

 

 

▲ PyTorch Lightning 可以重構 PyTorch 代碼、抽出複雜重複的部分,讓工程師可以更專注在研究代碼上

 

Lighting 的原理是藉由將研究代碼從重複性強的工程代碼區分開,讓工程師可以專注在研究代碼上,思緒就會更加清晰,整體代碼也更加簡潔清晰。

Hummingbird

並非所有的機器學習都是深度學習。通常,你的模型是由更多傳統的演算法在 Python 的機器學習套件 scikit-learn(像是 Random Forest)中組成;或者你也可以選擇時下流行的 LightGBM和 與 XGBoost 的梯度提升技術 (Gradient boosting)演算法。

然而,機器學習領域一直都在進步。像是上述的 PyTorch 框架正以令人屏息的速度在進步,硬體設備也不斷優化,以更低的耗能、更快的速度完成張量計算。假如我們能將這些優勢套用到傳統的演算法中,不是很好嗎?因此 Microsoft 就發布了新的 Python 函式庫「Hummimgbird」。

Hummingbird 可以將已經訓練好的傳統機器學習模型,編譯至張量計算。這個強大的功能讓你根本不用再設計新的模型!

截至目前為止,Hummingbird 支援轉換到 PyTorch、TorchScript、ONNX 與以及多種機器學習模型以及向量器。其實這跟上述提到的 scikit-learn(Sklearn)非常相似,讓你重複使用現有的代碼,但可將成品變成由 Hummingbird 生成的代碼。

 

下篇,我們即將介紹「Scalene」:用於 Python 腳本的 CPU 和記憶體的效能分析器(profiler),能完整地處理多執行緒代碼並區分運行 Python 和本機代碼所花費的時間,還有用於影像即時追蹤(real-time object tracking)的 「Norfair」,能及時抓住正在移動的人、事、物並賦予獨一無二的 ID。請點此看下一篇閱讀了解!

 

 

 

 

推薦文章:
人工智慧能「聽咳嗽聲認出新冠患者」!成功率達 98.5%


用說的就能寫程式!人工智慧替手傷工程師開發語音程式工具


Google 正測試人工智慧系統,助盲人和視障人士獨立參加路跑


Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了


敗血症黃金搶救期就靠人工智慧即時預測!


偵測速度快又精準?中研院開發人工智慧YOLOv4辦到了!(上)


怪物不會畫免緊張!靠人工智慧幫你輕鬆塗鴉變大師級奇幻插畫!

是什麼原因讓Python再度蟬聯熱門程式語言第一名??

是什麼原因讓Python再度蟬聯熱門程式語言第一名??
是什麼原因讓Python再度蟬聯熱門程式語言第一名??

Python再度成為熱門程式語言,到底是什麼原因讓它這麼夯?

2019 默默地進入了尾聲了,而 IEEE 也在此刻推出了今年最受歡迎的程式語言排行榜。不管你已經是寫程式高手,或者只是熱衷科技的一般人,生活在科技的浪潮中的我們,一起來看看到底是什麼程式語言建構了我們所知的科技世界吧!


▲ IEEE 2019 程式語言排行榜:Python 蟬連最熱門語言之首

今年的程式語言排行榜與以往不同, IEEE 剔除的一些已經不合時宜的評判標準,並且加重了每個語言在職場上的使用需求權重,讓程式語言排行更貼近現代的就業潮流。其判斷數據則來自於 Google、Twitter、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder 等等科技大佬,讓這個排名更具公信力。

不過即使評判的標準有所改變, Python 的熱潮依舊氣勢難擋。在所有分項目中都名列榜首的 Python,獲勝的關鍵在於他擁有大量的函式庫可供應用。尤其是在近年蓬勃發展的「人工智慧」領域中, Python 最令人熟知的函式庫 Keras更為人工智慧領域,尤其是「深度學習」貢獻不少,其中 Keras 提供的 TensorFlow、CNTKTheano 深度學習框架的介面和工具包正是工程師們必備的武器。

人工智慧的興起也是近年有意轉職的工程師們持續關注的話題,在 GitHub 問卷「你對哪項技術或技能最感興趣?」中,「人工智慧」排名第一,緊跟在後的才是「使用者體驗」以及「區塊鏈」。 GitHub 更提及 Python是人工智慧領域中工程師們的最愛,這也不難理解為什麼 Python 的熱潮會持續不退,甚至擊敗 Java 以及 C 語言等流行多年的語言了!

當然,人工智慧也並非 Python 的唯一應用方向,在數據分析領域或應用程式開發都擁有不錯的發展,而不同於其他語言,簡潔的程式碼以及易讀易懂的語法更使他擺脫了程式語言艱澀難學的評價。正是 Python 可靈活運用卻又好上手的特性,讓他成為初學者炙手可熱的選擇!

而緊緊排在 Python之後的程式語言則是 Java、C語言、C++ 等長年與 Python 爭奪冠軍的熱門程式語言。僅管 IEEE 調整了評判的指標,但這些語言與 Python 的差距依然越來越大。Java 是 15 年以來最多人使用的程式語言,帶著他強大的可移植性、可擴展性成為最多企業公司的開發語言,更建立了龐大的使用社群,是個含金量極高的程式語言。

但是相較於 Python, Java 的語法少了些可閱讀性,編程上也不如 Python 那樣簡潔有力,對於初學者是個不易親近的程式語言。而曾經紅極一時的 R 語言目前排名第五,儘管沒有像其他語言如此炙手可熱,但由於大數據產業的普遍應用,以及相對於其他語言的專業性較高, R 語言在榜上依然擁有一席之地,對於統計領域的朋友是個不錯的選擇。

在第十名以外,也有些值得一提的語言,例如位在第 11 位的 Arduino 以及第 12 位的 HTML/CSS。有些人可能會抱怨他們不算真正的程式語言,Arduino 其實是某種語言執行的一系列硬體平台名稱,但 IEEE表示對此他們秉持著實用主義的原則:在遇到程式語言的問題時,人們很常在 Google 搜尋中鍵入「Arduino 程式⋯⋯寫法」而不是其他程式語言的名字。

藉由 Arduino 作為評比對象,是有助於更精確統計此種程式語言的使用現況的,同時也可以避免許多使用數據上的遺漏。對於 HTML/CSS 的評論,因為缺乏了分支以及迴圈的功能,許多人根本不把他們當成是程式語言。但由於 HTML/CSS 在開發者中的普遍使用,甚至使他佔據了數以十億計的伺服器空間,在這樣的觀點下,IEEE 自然也認為他是現代社會中不可或缺的語言。

IEEE 也提及比較程式語言優劣時的難處,畢竟沒有任何人能夠學會所有的程式語言,並客觀比較哪種語言最強大,而程式語言之間也像個大家族,有些血緣十分相近,而有些卻相差十萬八千里,連使用的目的也可能毫無相關。所以其實並不存在所謂「最好的程式語言」,想要選擇真正適合你的程式語言,依然需要考量自己想要鑽研的領域以及應用方向。也基於這一點,在 IEEE 的可互動頁面上,使用者可以自己調整每項評分項目權重,讓使用者更貼近的了解最適合自己的程式語言。

 

 

 

 

 

推薦文章:
只會用PS就落伍了!Python畫出皮卡丘才夠屌!


想要自學Python?首先你要先懂它是誰!


Python與Java名字由來超有趣?看完你就知道了…


SEO前,我們該做什麼?(上)先找出你的競爭者!


人工智慧微軟Suphx又解新成就(1)創日本麻將最高紀錄


網路行銷七大撇步馬上告訴你(一)


暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~