外頭有許多類型的python庫可用,本文介紹了一些流行的機器學習庫。
1. NumPy:
NumPy是一種通用的數組處理軟體包。它提供高性能的多維數組對象和用於處理這些數組的工具。它是用於科學計算的基本Python軟體包。
NumPy針對Python的CPython參考實現,這是一種非優化的字節碼解釋器。
NumPy的核心功能是「ndarray」,代表n維數組數據結構。這些數組是內存中的交錯視圖。相比Python的內置列表數據結構,這些數組是同構類型的:單個數組的所有元素都必須是同一類型。
2. Scipy:
SciPy是一種免費開源Python庫,用於科學計算和技術計算。
它包含用於優化、線性代數、積分、插值、特殊函數、FFT、信號及圖像處理、ODE求解器以及科學工程中其他常見任務的模塊。
NumPy堆棧有時也叫SciPy堆棧。SciPy使用的基本數據結構是NumPy模塊提供的多維數組。NumPy提供了一些用於線性代數、傅立葉變換和隨機數生成的函數,但不具有SciPy中的等效函數具有的一般性。
3. Scikit-learn:
Scikit-learn(又名sklearn)是面向Python程式語言的免費軟體機器學習庫。
它有各種分類、回歸和聚類算法,包括支持向量機、隨機森林、梯度提升、k均值和DBSCAN,旨在與Python數值庫NumPy和科學庫SciPy協同操作。
Scikit-learn項目始於David Cournapeau開發的谷歌編程夏令營(Summer of Code)項目「SciKit」(SciPy Toolkit)。
它是GitHub上最受歡迎的機器學習庫之一。
它主要用Python編寫,廣泛地使用NumPy,用於高性能線性代數和數組運算。
4. Tensorflow:
TensorFlow是一種免費開源軟體庫,用於針對各種任務的數據流和可微分編程。
TensorFlow是谷歌Brain的第二代系統。參考實現在單個設備上運行,但TensorFlow可以在多個CPU和GPU上運行。TensorFlow可在64位的Linux、macOS、Windows和移動計算平臺(包括Android和iOS)上使用。
Tensor處理單元(TPU):2016年5月谷歌宣布Tensor處理單元,這種針對特定應用的集成電路專門為機器學習而構建,為TensorFlow量身定製。TPU是一種可編程的AI加速器,旨在提供高吞吐量的低精度算術運算,面向使用或運行模型,而不是訓練模型。
5. Pytorch:
PyTorch是一種基於Torch庫的開源機器學習庫,用於計算機視覺和自然語言處理等應用,主要由Facebook的AI研究實驗室開發。
它有更完善的Python接口,主要側重於開發,它還有C++接口。
幾款深度學習軟體是在PyTorch上構建的,包括優步的Pyro、HuggingFace的Transformers和Catalyst。
它提供兩種高級功能:通過GPU實現擁有強大加速功能的Tensor計算,建立在基於磁帶的自動微分系統上的深度神經網絡(DNN)。
它定義了一個名為Tensor的類來存儲和操作數字的異構多維矩形陣列。PyTorch張量類似NumPy數組,但也可以在支持CUDA功能的英偉達GPU上加以處理。
6. Keras:
Keras是一種用Python編寫的開源神經網絡庫。它能夠在TensorFlow、Microsoft Cognitive Toolkit、R、Theano或PlaidML上運行。
Keras致力於易於使用、模塊化和可擴展。
Franois Chollet(谷歌工程師兼Keras的維護者)解釋,Keras被認為是一種接口,而不是一種獨立的機器學習框架。它提供了更高級、更直觀的抽象集,無論使用哪種計算後端,用戶都可以輕鬆開發深度學習模型。
Keras含有常用神經網絡構建模塊的眾多實現,比如層、目標、激活函數、優化器以及許多工具,這些工具使圖像和文本數據處理起來更容易,從而簡化編寫深度神經網絡代碼所需的編程工作。
Keras支持卷積和循環神經網絡。它支持其他常見的實用層,比如隨機失活、批量歸一化和池化。Keras讓用戶可以把深度模型用在智慧型手機、Web或Java虛擬機上。
截至2018年年中,Keras聲稱擁有逾25萬個人用戶,它在KDnuggets 2018軟體調查中是被引用次數排名第十的工具,使用率達到22%。