簡介
這是我們學(xué)習(xí) Python 及其在機(jī)器學(xué)習(xí) (ML) 和人工智能 (AI) 中的應(yīng)用系列的第四個(gè)模塊。在前面三個(gè)模塊文章的學(xué)習(xí),我們已經(jīng)對Python相關(guān)基礎(chǔ)知識有了了解?,F(xiàn)在,我們可以開始學(xué)習(xí)Python中哪一些庫可以用來處理AI和ML任務(wù)。
請注意,這更像是 Python 庫的清單,其中包含您可以了解更多信息的鏈接。我們將深入研究將這些庫用于未來模塊的示例。
NLTK
NLTK(Natural Language Toolkit)提供了許多處理自然語言處理(NLP)的軟件包,NLP是與計(jì)算語言學(xué)相關(guān)的人工智能的一個(gè)分支,專注于理解和解釋書面人類語言。使用 NLTK,您可以分析句子、對單詞進(jìn)行分類、執(zhí)行情感分析等等。
OpenCV
OpenCV(開放計(jì)算機(jī)視覺)是一個(gè)用于優(yōu)化實(shí)時(shí)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)的庫。它可以使用過濾器和轉(zhuǎn)換處理圖像,檢測圖像中的特征并從中提取數(shù)據(jù);它用于光學(xué)字符識別 (OCR)、人臉檢測、對象跟蹤等應(yīng)用。
Keras
Keras是 Python 中用于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的高級庫。它運(yùn)行在 TensorFlow、Theano 或 CNTK 深度學(xué)習(xí)框架之上。與單獨(dú)使用 TensorFlow 或使用 PyTorch 框架相比,Keras 更受歡迎,因?yàn)樗沁@三者中最容易使用的快速原型設(shè)計(jì)深度學(xué)習(xí)項(xiàng)目。
TensorFlow
TensorFlow是一個(gè)用于開發(fā)和訓(xùn)練機(jī)器學(xué)習(xí)模型的開源庫。它提供高級和低級 API。與 Keras 相比,它具有更高的性能,因此更常用于大型數(shù)據(jù)集。Keras 現(xiàn)在作為 TensorFlow 的高級 API 包含在 TensorFlow 工具包中,用于構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的原型。
PyTorch
PyTorch是一個(gè)深度學(xué)習(xí)框架。它專注于張量計(jì)算(如 NumPy,但使用 GPU 加速)和深度神經(jīng)網(wǎng)絡(luò)。
scikit-learn
scikit-learn是一個(gè)提供各種“傳統(tǒng)”機(jī)器學(xué)習(xí)方法(線性模型、支持向量機(jī)、決策樹等)的庫。然而,它不包含深度學(xué)習(xí)功能,因?yàn)樯疃葘W(xué)習(xí)相當(dāng)專業(yè),而機(jī)器學(xué)習(xí)庫通常專注于深度學(xué)習(xí)或傳統(tǒng)機(jī)器學(xué)習(xí)方法。這使得 scikit-learn 成為與 Keras、TensorFlow 和 PyTorch 完全不同的野獸。
NumPy 和 SciPy
NumPy和SciPy不是專門用于機(jī)器學(xué)習(xí)的庫,但它們是本概述的重要組成部分,因?yàn)樗鼈兲峁┝丝茖W(xué)計(jì)算的基本工具。
NumPy 提供了強(qiáng)大的 N 維數(shù)組、線性代數(shù)、傅立葉變換,并且可以與 OpenCV 等其他庫順利協(xié)同工作(這并不奇怪,因?yàn)樗鼈兌冀⒃?NumPy 之上)。
SciPy 在 NumPy 的數(shù)組之上工作,并提供用于數(shù)值分析的函數(shù),例如插值、優(yōu)化、積分、微分方程求解器、統(tǒng)計(jì)等。
Matplotlib
Matplotlib是一個(gè)用于在 Python 中創(chuàng)建可視化的庫。您可以使用它以 2D 或 3D 格式創(chuàng)建靜態(tài)、動(dòng)畫或交互式圖表和圖形。
Pandas
Pandas是一個(gè)用于數(shù)據(jù)分析和操作的庫。它可以讀/寫許多不同格式的文件,并提供許多功能來管理您的數(shù)據(jù):索引、選擇、合并、重塑等等。
選擇什么?
如您所見,您可以做出很多選擇。
如果您是企業(yè)開發(fā)人員,您可能希望選擇高級庫,例如 NLTK、OpenCV 或 Keras。這將使您盡可能快地走上正軌。
TensorFlow 或 PyTorch 的高級部分等庫可幫助您構(gòu)建神經(jīng)網(wǎng)絡(luò),而無需擔(dān)心低級復(fù)雜性。
低級解決方案,例如 TensorFlow 的某些部分,或者用 NumPy 做所有事情,通常需要更多的工作,因此交付解決方案需要更長的時(shí)間,并且這些解決方案更難維護(hù)。
結(jié)論
以上內(nèi)容就是關(guān)于Python中人工智能(AI)和機(jī)器學(xué)習(xí)(ML)相關(guān)的一些庫,接下來的模塊,將要學(xué)習(xí)如何深入地使用它們。