本篇文章給大家?guī)砹岁P(guān)于python的相關(guān)知識(shí),其中主要介紹了機(jī)器學(xué)習(xí)、深度學(xué)習(xí)庫總結(jié),其中包含了大量的實(shí)例,下面一起來看一下,希望對(duì)大家有幫助。
推薦學(xué)習(xí):python視頻教程
前言
目前,隨著人工智能的大熱,吸引了諸多行業(yè)對(duì)于人工智能的關(guān)注,同時(shí)也迎來了一波又一波的人工智能學(xué)習(xí)的熱潮,雖然人工智能背后的原理并不能通過短短一文給予詳細(xì)介紹,但是像所有學(xué)科一樣,我們并不需要從頭開始”造輪子“,可以通過使用豐富的人工智能框架來快速構(gòu)建人工智能模型,從而入門人工智能的潮流。
人工智能指的是一系列使機(jī)器能夠像人類一樣處理信息的技術(shù);機(jī)器學(xué)習(xí)是利用計(jì)算機(jī)編程從歷史數(shù)據(jù)中學(xué)習(xí),對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)的過程;神經(jīng)網(wǎng)絡(luò)是基于生物大腦結(jié)構(gòu)和特征的機(jī)器學(xué)習(xí)的計(jì)算機(jī)模型;深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子集,它處理大量的非結(jié)構(gòu)化數(shù)據(jù),如人類的語音、文本和圖像。因此,這些概念在層次上是相互依存的,人工智能是最廣泛的術(shù)語,而深度學(xué)習(xí)是最具體的:
為了大家能夠?qū)θ斯ぶ悄艹S玫?Python
庫有一個(gè)初步的了解,以選擇能夠滿足自己需求的庫進(jìn)行學(xué)習(xí),對(duì)目前較為常見的人工智能庫進(jìn)行簡(jiǎn)要全面的介紹。
python常用機(jī)器學(xué)習(xí)及深度學(xué)習(xí)庫介紹
1、 Numpy
NumPy(Numerical Python)
是 Python
的一個(gè)擴(kuò)展程序庫,支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫,Numpy
底層使用C語言
編寫,數(shù)組中直接存儲(chǔ)對(duì)象,而不是存儲(chǔ)對(duì)象指針,所以其運(yùn)算效率遠(yuǎn)高于純Python代
碼。
我們可以在示例中對(duì)比下純Python
與使用Numpy庫
在計(jì)算列表sin值的速度對(duì)比:
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用時(shí){}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用時(shí){}s".format(time.time()-start))
從如下運(yùn)行結(jié)果,可以看到使用 Numpy
庫的速度快于純 Python 編寫的代碼:
使用純Python用時(shí)0.017444372177124023s 使用Numpy用時(shí)0.001619577407836914s
2、 OpenCV
OpenCV
是一個(gè)的跨平臺(tái)計(jì)算機(jī)視覺庫,可以運(yùn)行在 Linux、Windows 和 Mac OS 操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)也提供了 Python
接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。
下面代碼嘗試使用一些簡(jiǎ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ǔ)(變換和去噪),了解