本篇文章給大家?guī)砹岁P(guān)于python的相關(guān)知識,其中主要介紹了機器學(xué)習(xí)、深度學(xué)習(xí)庫總結(jié),其中包含了大量的實例,下面一起來看一下,希望對大家有幫助。
推薦學(xué)習(xí):python視頻教程
前言
目前,隨著人工智能的大熱,吸引了諸多行業(yè)對于人工智能的關(guān)注,同時也迎來了一波又一波的人工智能學(xué)習(xí)的熱潮,雖然人工智能背后的原理并不能通過短短一文給予詳細(xì)介紹,但是像所有學(xué)科一樣,我們并不需要從頭開始”造輪子“,可以通過使用豐富的人工智能框架來快速構(gòu)建人工智能模型,從而入門人工智能的潮流。
人工智能指的是一系列使機器能夠像人類一樣處理信息的技術(shù);機器學(xué)習(xí)是利用計算機編程從歷史數(shù)據(jù)中學(xué)習(xí),對新數(shù)據(jù)進(jìn)行預(yù)測的過程;神經(jīng)網(wǎng)絡(luò)是基于生物大腦結(jié)構(gòu)和特征的機器學(xué)習(xí)的計算機模型;深度學(xué)習(xí)是機器學(xué)習(xí)的一個子集,它處理大量的非結(jié)構(gòu)化數(shù)據(jù),如人類的語音、文本和圖像。因此,這些概念在層次上是相互依存的,人工智能是最廣泛的術(shù)語,而深度學(xué)習(xí)是最具體的:
為了大家能夠?qū)θ斯ぶ悄艹S玫?Python
庫有一個初步的了解,以選擇能夠滿足自己需求的庫進(jìn)行學(xué)習(xí),對目前較為常見的人工智能庫進(jìn)行簡要全面的介紹。
python常用機器學(xué)習(xí)及深度學(xué)習(xí)庫介紹
1、 Numpy
NumPy(Numerical Python)
是 Python
的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫,Numpy
底層使用C語言
編寫,數(shù)組中直接存儲對象,而不是存儲對象指針,所以其運算效率遠(yuǎn)高于純Python代
碼。
我們可以在示例中對比下純Python
與使用Numpy庫
在計算列表sin值的速度對比:
import numpy as npimport mathimport randomimport time start = time.time()for i in range(10): list_1 = list(range(1,10000)) for j in range(len(list_1)): list_1[j] = math.sin(list_1[j])print("使用純Python用時{}s".format(time.time()-start))start = time.time()for i in range(10): list_1 = np.array(np.arange(1,10000)) list_1 = np.sin(list_1)print("使用Numpy用時{}s".format(time.time()-start))
從如下運行結(jié)果,可以看到使用 Numpy
庫的速度快于純 Python 編寫的代碼:
使用純Python用時0.017444372177124023s 使用Numpy用時0.001619577407836914s
2、 OpenCV
OpenCV
是一個的跨平臺計算機視覺庫,可以運行在 Linux、Windows 和 Mac OS 操作系統(tǒng)上。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時也提供了 Python
接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。
下面代碼嘗試使用一些簡單的濾鏡,包括圖片的平滑處理、高斯模糊等:
import numpy as npimport cv2 as cvfrom matplotlib import pyplot as plt img = cv.imread('h89817032p0.png')kernel = np.ones((5,5),np.float32)/25dst = cv.filter2D(img,-1,kernel)blur_1 = cv.GaussianBlur(img,(5,5),0)blur_2 = cv.bilateralFilter(img,9,75,75)plt.figure(figsize=(10,10))plt.subplot(221),plt.imshow(img[:,:,::-1]),plt.title('Original')plt.xticks([]), plt.yticks([])plt.subplot(222),plt.imshow(dst[:,:,::-1]),plt.title('Averaging')plt.xticks([]), plt.yticks([])plt.subplot(223),plt.imshow(blur_1[:,:,::-1]),plt.title('Gaussian')plt.xticks([]), plt.yticks([])plt.subplot(224),plt.imshow(blur_1[:,:,::-1]),plt.title('Bilateral')plt.xticks([]), plt.yticks([])plt.show()
可以參考OpenCV圖像處理基礎(chǔ)(變換和去噪),了解