版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)1走進(jìn)人工智能01020304人工智能與深度學(xué)習(xí)人工智能深度學(xué)習(xí)步驟人工智能深度學(xué)習(xí)框架單擊此處添加標(biāo)題05API操作平臺(tái)人工智能的應(yīng)用任務(wù)1走進(jìn)人工智能一、人工智能與深度學(xué)習(xí)1、人工智能概述人工智能(ArtificialIntelligence)簡(jiǎn)稱AI。人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它企圖了解智能的本質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,是研究、開(kāi)發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。人工智能是一個(gè)廣泛的研究領(lǐng)域,包括許多理論,方法和技術(shù),主要包含以下領(lǐng)域。一、人工智能與深度學(xué)習(xí)2、人工智能分類人工智能作為新一輪產(chǎn)業(yè)變革的核心驅(qū)動(dòng)力,在不斷催生新技術(shù)、新產(chǎn)品的同時(shí),對(duì)傳統(tǒng)行業(yè)也進(jìn)行了賦能,人工智能是一個(gè)很大的概念,種類比較多,根據(jù)水平高低,分為以下三類。弱人工智能弱人工智能是一種擅長(zhǎng)單方面的人工智能,能夠單獨(dú)完成某個(gè)特定的任務(wù)。強(qiáng)人工智能強(qiáng)人工智能是指和人類能夠?qū)崿F(xiàn)的功能類似。超人工智能超人工智能是比喻在所有領(lǐng)域(科學(xué)創(chuàng)新、社交技能等)都比人類大腦聰明的智能。一、人工智能與深度學(xué)習(xí)3、深度學(xué)習(xí)概述深度學(xué)習(xí)是人工智能和機(jī)器學(xué)習(xí)的一種,簡(jiǎn)稱DL,是一種通過(guò)模仿人類獲得某種類型知識(shí)的方式,也是利用深度神經(jīng)網(wǎng)絡(luò)來(lái)解決特征表達(dá)的一種學(xué)習(xí)過(guò)程,在使用深度學(xué)習(xí)過(guò)程中,深度學(xué)習(xí)是數(shù)據(jù)科學(xué)的一項(xiàng)重要元素,主要包括統(tǒng)計(jì)和模型預(yù)測(cè)。除此之外,深度學(xué)習(xí)也可以被視為這一種自動(dòng)化預(yù)測(cè)分析工具,通過(guò)對(duì)機(jī)器學(xué)習(xí)中的算法進(jìn)行調(diào)用,從而優(yōu)化模型和預(yù)測(cè)模型,實(shí)現(xiàn)自動(dòng)化預(yù)測(cè)分析。深度學(xué)習(xí)就是一種建立在模擬人腦進(jìn)行分析的神經(jīng)網(wǎng)絡(luò),從而對(duì)大腦的數(shù)據(jù)進(jìn)行解釋分析,比如圖像、聲音、文本等,在這個(gè)過(guò)程中用到的深度神經(jīng)網(wǎng)絡(luò)并不是一個(gè)全新的概念,而是一個(gè)包含多個(gè)隱含層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),層次中的每個(gè)算法都對(duì)其輸入應(yīng)用進(jìn)行非線性變換,并使得學(xué)習(xí)的知識(shí)來(lái)創(chuàng)建統(tǒng)計(jì)模型作為輸出。二、人工智能深度學(xué)習(xí)步驟深度學(xué)習(xí)的使用步驟主要分為三步:第一步:建立模型,通過(guò)建立模型,決定選擇什么樣的網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)結(jié)構(gòu)中包含多少層和每層包含多少個(gè)神經(jīng)元。第二步:優(yōu)化模型,并對(duì)模型進(jìn)行評(píng)估,主要通過(guò)一些常用的損失函數(shù)優(yōu)化模型。第三步:選擇最優(yōu)函數(shù),通過(guò)調(diào)整學(xué)習(xí)參數(shù),調(diào)整學(xué)習(xí)率,使用梯度下降或者反向傳播算法來(lái)選擇最優(yōu)函數(shù)。321二、人工智能深度學(xué)習(xí)步驟1、建立模型(1)神經(jīng)元在深度學(xué)習(xí)中,主要通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)建立模型,常用的有卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等,這些神經(jīng)網(wǎng)絡(luò)都是由很多單元連接而成,這些單元稱為神經(jīng)元。二、人工智能深度學(xué)習(xí)步驟1、建立模型(1)圖中是一個(gè)簡(jiǎn)單的線性回歸函數(shù),每個(gè)輸入都乘以對(duì)應(yīng)的權(quán)重,將結(jié)果進(jìn)行求和,之后和與偏重帶入激活函數(shù),從而得到想要的結(jié)果。二、人工智能深度學(xué)習(xí)步驟1、建立模型(2)前饋神經(jīng)網(wǎng)絡(luò)前饋神經(jīng)網(wǎng)絡(luò)是一種最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),每個(gè)神經(jīng)元分層排列,每個(gè)神經(jīng)元和前一層的神經(jīng)元相連,值在網(wǎng)絡(luò)中傳遞的方向是由前向后進(jìn)行傳播,換句話說(shuō)是由輸入層傳向輸出層。二、人工智能深度學(xué)習(xí)步驟1、建立模型(2)如圖所示,包含三層,網(wǎng)絡(luò)輸入層,隱藏層和輸出層,在網(wǎng)絡(luò)的輸入層中,Layer的大小與真實(shí)輸入大小相匹配,隱藏層位于輸入層和輸出層中間,一個(gè)神經(jīng)網(wǎng)絡(luò)模型包含多個(gè)隱藏層,輸出層是網(wǎng)絡(luò)的最后一層,神經(jīng)元計(jì)算產(chǎn)生的結(jié)果直接輸出,作為模型的輸出。二、人工智能深度學(xué)習(xí)步驟2、優(yōu)化模型(1)激活函數(shù)為了增強(qiáng)網(wǎng)絡(luò)的表達(dá)能力,需要使用激活函數(shù)將線性函數(shù)轉(zhuǎn)換成非線性函數(shù)。在深度學(xué)習(xí)模型中,常用的激活函數(shù)有sigmoid、tanh、relu和softplus。激活函數(shù)具體描述如表所示。二、人工智能深度學(xué)習(xí)步驟2、優(yōu)化模型(2)損失函數(shù)損失函數(shù)(lossfunction)是機(jī)器學(xué)習(xí)中評(píng)估神經(jīng)網(wǎng)絡(luò)模型效果的一種重要指標(biāo),它是評(píng)估模型輸出值與目標(biāo)值的差異,損失函數(shù)越小,表明模型的魯棒性就越好。對(duì)于模型的評(píng)估,一般使用損失函數(shù)反映模型的好壞,在損失函數(shù)中,使用最多的是交叉熵?fù)p失函數(shù)(Crossentropy),該函數(shù)主要用于神經(jīng)網(wǎng)絡(luò)分類問(wèn)題,交叉熵會(huì)計(jì)算每個(gè)類別的概率,經(jīng)常與激活函數(shù)sigmoid一起出現(xiàn),通過(guò)交叉熵對(duì)y及y的導(dǎo)數(shù)損失進(jìn)行計(jì)算,之后通過(guò)調(diào)整參數(shù),使得交叉熵越小越好。二、人工智能深度學(xué)習(xí)步驟3、選擇最優(yōu)函數(shù)在網(wǎng)絡(luò)模型中,選擇最優(yōu)函數(shù)有兩種方式。1梯度下降2反向傳播算法二、人工智能深度學(xué)習(xí)步驟3、選擇最優(yōu)函數(shù)(1)梯度下降法網(wǎng)絡(luò)模型中,進(jìn)行參數(shù)學(xué)習(xí)過(guò)程中,當(dāng)隱藏層過(guò)多,網(wǎng)絡(luò)參數(shù)個(gè)數(shù)過(guò)大時(shí),是無(wú)法枚舉出所有可能取值,這時(shí)就需要尋找模型參數(shù),使得損失值達(dá)到最小,這時(shí)就需要使用梯度下降法進(jìn)行模型參數(shù)的尋找。如圖所示為語(yǔ)音識(shí)別模型,在這個(gè)里面共8層,每層有1000個(gè)神經(jīng)元,那權(quán)重參數(shù)就是一個(gè)非常龐大的數(shù)據(jù)。二、人工智能深度學(xué)習(xí)步驟3、選擇最優(yōu)函數(shù)(1)梯度下降法的具體流程是包含權(quán)重和偏差的參數(shù)集合,隨機(jī)找個(gè)初始值,計(jì)算一下每個(gè)參數(shù)對(duì)應(yīng)的偏微分,得到的一個(gè)偏微分的集合就是梯度,有了這些偏微分,從而更新梯度得到新的參數(shù),這樣不斷反復(fù)進(jìn)行,就能得到一組參數(shù)使得損失函數(shù)的值最小。二、人工智能深度學(xué)習(xí)步驟3、選擇最優(yōu)函數(shù)(2)反向傳播算法在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,可以使用反向傳播算法將計(jì)算得到的損失向前傳遞,用來(lái)計(jì)算各個(gè)神經(jīng)元連接的權(quán)重對(duì)損失的影響大小。反向傳播算法,簡(jiǎn)稱BP算法,是簡(jiǎn)歷在梯度下降法的基礎(chǔ)上,用于多層神經(jīng)元網(wǎng)絡(luò)的一種學(xué)習(xí)算法,主要使用激活傳播和權(quán)重更新兩個(gè)環(huán)節(jié)達(dá)到反復(fù)循環(huán)迭代的效果,從而達(dá)到網(wǎng)絡(luò)對(duì)輸入的響應(yīng)達(dá)到預(yù)定的目標(biāo)范圍為止。在深度學(xué)習(xí)中,可以使用深度學(xué)習(xí)框架來(lái)計(jì)算損失值,常用的框架有TensorFlow,PyTorch,Theano等。三、人工智能深度學(xué)習(xí)框架常見(jiàn)的深度學(xué)習(xí)框架有PaddlePaddle、TensorFlow、Caffe、Theano、Keras、PyTorch、MXNet等。這些深度學(xué)習(xí)框架被應(yīng)用于計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別、自然語(yǔ)言處理與生物信息學(xué)等領(lǐng)域,并獲取了極好的效果。深度學(xué)習(xí)框架在使用過(guò)程中,具有兩點(diǎn)優(yōu)勢(shì),分別為易用性和高效性。易用性,主要體現(xiàn)在屏蔽底層的機(jī)器學(xué)習(xí)算法,用戶只需要關(guān)注模型的結(jié)構(gòu),同時(shí)簡(jiǎn)化了計(jì)算過(guò)程,降低了深度學(xué)習(xí)的門檻。高效性:深度學(xué)習(xí)都具有高效性,可以將代碼運(yùn)行在CPU或者GPU上。三、人工智能深度學(xué)習(xí)框架1PaddlePaddle2TensorFlow3Caffe4Keras四、人工智能的應(yīng)用1、計(jì)算機(jī)視覺(jué)處理(1)人臉識(shí)別人臉識(shí)別在消費(fèi)支付、安防、娛樂(lè)、交通出行等場(chǎng)所有重要作用。人臉識(shí)別技術(shù)支持1:N匹配,支持多角度識(shí)別,不受發(fā)型、妝容、眼鏡的影響,因此即使人改變發(fā)型,或者換副眼鏡,居民都不需要擔(dān)心無(wú)法進(jìn)門,也無(wú)需重新去物業(yè)登記。四、人工智能的應(yīng)用1、計(jì)算機(jī)視覺(jué)處理(2)光學(xué)字符識(shí)別光學(xué)字符識(shí)別(OpticalCharacterRecognition,OCR)就是通過(guò)掃描等光學(xué)輸入方式將各種票據(jù)、報(bào)刊、書(shū)籍、文稿及其他印刷品的文字轉(zhuǎn)化為圖像信息,再利用文字識(shí)別技術(shù)將圖像信息轉(zhuǎn)化為可以使用的文本的計(jì)算機(jī)輸入技術(shù)。目前光學(xué)字符識(shí)別有著更加廣闊的應(yīng)用前景,例如證件識(shí)別、銀行卡識(shí)別、通用文字字符識(shí)別等。四、人工智能的應(yīng)用2、語(yǔ)音識(shí)別目前語(yǔ)音識(shí)別被廣泛應(yīng)用,社交聊天發(fā)送實(shí)時(shí)語(yǔ)音,轉(zhuǎn)換為文字,讓溝通交流更加準(zhǔn)確快捷。3、自然語(yǔ)言處理深度學(xué)習(xí)在自然語(yǔ)言處理中的應(yīng)用越來(lái)越廣泛,從底層的分詞、語(yǔ)言模型、句法分析等到高層的對(duì)話管理、知識(shí)問(wèn)答、聊天、機(jī)器翻譯等方面幾乎全部都有深度學(xué)習(xí)模型的身影,并且取得了不錯(cuò)的效果。四、人工智能的應(yīng)用4、自動(dòng)駕駛自動(dòng)駕駛的人工智能包含了感知、決策和控制等流程和模塊。感知是指通過(guò)攝像頭、激光雷達(dá)等傳感器的輸入,進(jìn)而解析出周圍環(huán)境的信息。五、AIStudio操作平臺(tái)1、百度AIStudioAIStudio是百度AI推出的一站式開(kāi)發(fā)平臺(tái),包含AI教程、代碼環(huán)境、算法算力、數(shù)據(jù)集,同時(shí)提供了免費(fèi)的在線云計(jì)算的一體化編程平臺(tái),AIStudio的網(wǎng)址鏈接為/aistudio/index?ref=pinpai。五、AIStudio操作平臺(tái)2、華為云ModelArts華為云是一個(gè)綜合的云平臺(tái),在平臺(tái)中包含云服務(wù)器、相關(guān)的解決方案、云市場(chǎng)等相關(guān)的內(nèi)容,同時(shí)包含ModelArts(面向開(kāi)發(fā)者的一站式AI平臺(tái))。/product/modelarts.html?utm_source=3.&utm_medium=organic&utm_adplace=kapian。五、AIStudio操作平臺(tái)3、騰訊云TI平臺(tái)騰訊云TI平臺(tái)主要用于深度學(xué)習(xí),幫用戶實(shí)現(xiàn)數(shù)據(jù)獲取、數(shù)據(jù)處理、算法構(gòu)建、模型訓(xùn)練、模型評(píng)估、模型部署等一站式服務(wù)。六、任務(wù)實(shí)施1、任務(wù)背景服務(wù)器在線訓(xùn)練環(huán)境和硬件配備,對(duì)于新手來(lái)說(shuō)還是比較麻煩,即使使用Docker也還是對(duì)使用者有一定的門檻要求,為此百度免費(fèi)開(kāi)放了Web在線開(kāi)發(fā)平臺(tái)AI-Studio供新手來(lái)使用。本任務(wù)通過(guò)創(chuàng)建百度賬號(hào)并進(jìn)入項(xiàng)目編輯頁(yè)來(lái)體驗(yàn)百度AI-studio平臺(tái)。六、任務(wù)實(shí)施2、實(shí)驗(yàn)思路感謝觀看任務(wù)2初識(shí)PaddlePaddle任務(wù)2初識(shí)PaddlePaddle01020304PaddlePaddle簡(jiǎn)介PaddlePaddle行業(yè)應(yīng)用PaddlePaddle環(huán)境搭建高層API一、PaddlePaddle簡(jiǎn)介PaddlePaddle也稱飛槳,是百度研發(fā)的一款技術(shù)領(lǐng)先、功能完備的產(chǎn)業(yè)級(jí)深度學(xué)習(xí)開(kāi)源開(kāi)放平臺(tái),包含深度學(xué)習(xí)核心框架、基礎(chǔ)模型庫(kù)、端到端開(kāi)發(fā)套件、工具組件和服務(wù)平臺(tái)等五部分。二、PaddlePaddle行業(yè)應(yīng)用1、百度內(nèi)部行業(yè)應(yīng)用飛槳PaddlePaddle已在百度多項(xiàng)主要產(chǎn)品和服務(wù)之中發(fā)揮著巨大的作用。二、PaddlePaddle行業(yè)應(yīng)用2、高爾夫球場(chǎng)的遙感檢測(cè)PaddlePaddle使用卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)高爾夫球場(chǎng)用地進(jìn)行檢測(cè),對(duì)發(fā)現(xiàn)新增高爾夫球場(chǎng)、核查清理整治效果具有重要意義。二、PaddlePaddle行業(yè)應(yīng)用3、AI識(shí)蟲(chóng)飛槳與北京林業(yè)大學(xué)合作的“AI識(shí)蟲(chóng)”,能夠遠(yuǎn)程檢測(cè)病蟲(chóng)害,效率提升50倍,準(zhǔn)確率超過(guò)90%,使用飛槳的步驟為:數(shù)據(jù)采集→基礎(chǔ)模型蠹蟲(chóng)圖片訓(xùn)練識(shí)蟲(chóng)模型→利用工具集將模型翻譯轉(zhuǎn)換→部署到PaddlePi-K210芯片板卡→識(shí)蟲(chóng)設(shè)備集成。二、PaddlePaddle行業(yè)應(yīng)用4、其他應(yīng)用應(yīng)用飛槳研發(fā)的智能零件質(zhì)檢機(jī),單個(gè)零件的檢測(cè)速度只需25ms,檢測(cè)效率大幅提升,企業(yè)成本降低15%以上。飛槳與南方電網(wǎng)廣東能源技術(shù)公司聯(lián)合研發(fā)的電網(wǎng)智能巡檢解決方案,設(shè)備狀態(tài)讀取準(zhǔn)確性高達(dá)99.01%,電網(wǎng)設(shè)備人工巡檢工作量降低90%。事實(shí)上,隨著飛槳賦能行業(yè)進(jìn)程的加快,小到智能桃子分揀機(jī)、零件質(zhì)檢,大到城市規(guī)劃、病蟲(chóng)害檢測(cè)、無(wú)人駕駛、預(yù)防性醫(yī)療保健等眾多行業(yè)中實(shí)現(xiàn)落地應(yīng)用。三、PaddlePaddle環(huán)境搭建1、pip安裝在使用pip安裝飛槳過(guò)程之前,需要在電腦上安裝Python軟件與pip工具,之后運(yùn)行下面命令進(jìn)行安裝。python-mpipinstallpaddlepaddle==2.2.2在使用pipinstallpaddlepaddle安裝過(guò)程會(huì)比較慢,一般推薦使用清華鏡像或百度鏡像源進(jìn)行安裝。命令如下:python-mpipinstallpaddlepaddle==2.2.2-ihttps://mirror./simple或python-mpipinstallpaddlepaddle==2.2.2-ihttps://mirror./simplepython-mpipinstallpaddlepaddle==2.2.2-i/pypi/simple三、PaddlePaddle環(huán)境搭建2、conda安裝使用conda安裝之前,需要在電腦中安裝好Anaconda或者miniconda,在進(jìn)入需要安裝飛槳的環(huán)境后,使用conda安裝飛槳命令如下:python-mpipinstallpaddlepaddle==2.2.2condainstallpaddlepaddle==2.2.2--channel/anaconda/cloud/Paddle/三、PaddlePaddle環(huán)境搭建3、Docker安裝在使用Docker方式安裝飛槳時(shí),需要在自己電腦上安裝Docker,以LINUX系統(tǒng)安裝為例,安裝好Docker后,在終端中輸入以下命令拉取CPU版本的飛槳官方鏡像。dockerpull/paddlepaddle/paddle:2.2.2CPU版的PaddlePaddle,且鏡像中預(yù)裝好了jupyter,拉取命令如下:用鏡像構(gòu)建并進(jìn)入Docker容器,命令如下:dockerpull/paddlepaddle/paddle:2.2.2-jupyterdockerrun--namepaddle-it-v$PWD:/paddle/paddlepaddle/paddle:2.2.2/bin/bash三、PaddlePaddle環(huán)境搭建3、Docker安裝如果需要下載GPU版本,需要查看GPU版本支持的CUDA,并需要預(yù)先安裝CUDA和nvidia-docker,以CUDA11.2為例,拉取預(yù)安裝PaddlePaddle的鏡像命令如下:nvidia-dockerpull/paddlepaddle/paddle:2.2.2-gpu-cuda11.2-cudnn8用鏡像構(gòu)建并進(jìn)入Docker容器,命令如下:nvidia-dockerrun--namepaddle-it-v$PWD:/paddle/paddlepaddle/paddle:2.2.2-gpu-cuda11.2-cudnn8/bin/bash三、PaddlePaddle環(huán)境搭建4、驗(yàn)證飛槳是否安裝成功飛槳通過(guò)三種方式中的一種安裝之后,進(jìn)入Python編輯器,可以通過(guò)以下命令檢測(cè)飛槳是否安裝成功。importpaddlepaddle.utils.run_check()運(yùn)行命令,出現(xiàn)如圖所示的結(jié)果,則說(shuō)明飛槳在本地安裝成功。四、高層API飛槳在不斷提升過(guò)程中,推出了全新的高層API,主要適用于2.0及以上版本,使用全新的API,能夠快讀的構(gòu)建深度學(xué)習(xí)項(xiàng)目和快速完成算法的迭代。飛槳高層API具有以下特點(diǎn):易學(xué)易用:高層API是對(duì)普通動(dòng)態(tài)圖API的進(jìn)一步封裝和優(yōu)化,同時(shí)保持與普通API的兼容性,高層API使用更加易學(xué)易用,同樣的實(shí)現(xiàn)使用高層API可以節(jié)省大量的代碼。低代碼開(kāi)發(fā):使用飛槳高層API的一個(gè)明顯特點(diǎn)是編程代碼量大大縮減。動(dòng)靜轉(zhuǎn)換:高層API支持動(dòng)靜轉(zhuǎn)換,只需要改一行代碼即可實(shí)現(xiàn)將動(dòng)態(tài)圖代碼在靜態(tài)圖模式下訓(xùn)練,既方便使用動(dòng)態(tài)圖調(diào)試模型,又提升了模型訓(xùn)練效率。321四、高層API在功能增強(qiáng)與使用方式上,高層API有以下升級(jí):模型訓(xùn)練方式升級(jí):高層API中封裝了Model類,繼承了Model類的神經(jīng)網(wǎng)絡(luò)可以僅用幾行代碼完成模型的訓(xùn)練。新增圖像處理模塊transform:飛槳新增了圖像預(yù)處理模塊,其中包含數(shù)十種數(shù)據(jù)處理函數(shù),基本涵蓋了常用的數(shù)據(jù)處理、數(shù)據(jù)增強(qiáng)方法。。提供常用的神經(jīng)網(wǎng)絡(luò)模型可供調(diào)用:高層API中集成了計(jì)算機(jī)視覺(jué)領(lǐng)域和自然語(yǔ)言處理領(lǐng)域常用模型,包括但不限于mobilenet、resnet、yolov3、cyclegan、bert、transformer、seq2seq等等。321五、任務(wù)實(shí)施乘坐出租車的時(shí)候,知道每次乘坐出租車的公里數(shù),也知道每次下車的時(shí)候支付給出租車司機(jī)的總費(fèi)用。但是并不知道乘車的起步價(jià),以及每公里行駛費(fèi)用是多少。希望讓機(jī)器從這些數(shù)據(jù)當(dāng)中學(xué)習(xí)出來(lái)計(jì)算總費(fèi)用的規(guī)則。1、任務(wù)背景五、任務(wù)實(shí)施2、實(shí)驗(yàn)思路感謝觀看任務(wù)3PaddlePaddle基礎(chǔ)知識(shí)任務(wù)3PaddlePaddle基礎(chǔ)知識(shí)010203張量動(dòng)態(tài)圖模型開(kāi)發(fā)一、張量PaddlePaddle與Python中的科學(xué)計(jì)算庫(kù)(Numpy)類似,提供大量的計(jì)算操作,在計(jì)算過(guò)程中用到的常量稱為張量(Tensor),PaddlePaddle支持動(dòng)態(tài)圖和靜態(tài)圖,張量是數(shù)據(jù)流圖中節(jié)點(diǎn)之間相互流通數(shù)據(jù)的表現(xiàn)形式,比如一維數(shù)組、二維數(shù)組等都可以理解為張量,表示相關(guān)操作的輸出。一、張量PaddlePaddle在深度學(xué)習(xí)方面擁有強(qiáng)大的計(jì)算能力,可以創(chuàng)建多種不同形式的張量,在提供的API中,常用的函數(shù)有randn、arange和To_tensor等,具體如下所示。(1)randnrandn函數(shù)返回符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)張量,形狀為shape,數(shù)據(jù)類型為dtype,語(yǔ)法格式為:paddle.randn(shape,
dtype=None,
name=None)(2)arangearange函數(shù)返回以步長(zhǎng)step均勻分隔給定數(shù)值區(qū)間[start,end)的1-DTensor,數(shù)據(jù)類型為dtype,語(yǔ)法格式為:paddle.arange(start=0,
end=None,
step=1,
dtype=None,
name=None)一、張量(3)To_tensorTo_tensor函數(shù)將PIL.Image或numpy.ndarray轉(zhuǎn)換成paddle.Tensor。將形狀為(HxWxC)的輸入數(shù)據(jù)PIL.Image或numpy.ndarray轉(zhuǎn)換為(CxHxW)。如果想保持形狀不變,可以將參數(shù)data_format設(shè)置為'HWC'。語(yǔ)法格式為:paddle.vision.transforms.to_tensor(pic,
data_format='CHW')二、動(dòng)態(tài)圖PaddlePaddle從2.0版本開(kāi)始默認(rèn)開(kāi)啟動(dòng)態(tài)圖開(kāi)發(fā)模式,使用動(dòng)態(tài)圖開(kāi)發(fā)模式,每次執(zhí)行一個(gè)運(yùn)算,立刻能夠得到結(jié)果。在使用動(dòng)態(tài)圖過(guò)程中,除了引入paddle庫(kù)還需要引入numpy庫(kù)。示例代碼如下所示。importpaddleimportpaddle.nn.functionalasFimportnumpyasnp二、動(dòng)態(tài)圖在使用動(dòng)態(tài)圖過(guò)程中,有以下優(yōu)勢(shì):a=paddle.randn([4,2])b=paddle.arange(1,3,dtype='float32')print(a)print(b)A動(dòng)態(tài)圖模式下,可以直接運(yùn)行飛槳提用的randn或者arange等函數(shù),會(huì)立刻返回結(jié)果,不需要?jiǎng)?chuàng)建一個(gè)計(jì)算圖,再對(duì)給定的數(shù)據(jù)進(jìn)行運(yùn)算,示例代碼如下所示。動(dòng)態(tài)圖模式下,可以使用Python的條件判斷和循環(huán),用來(lái)執(zhí)行神經(jīng)網(wǎng)絡(luò)的計(jì)算,示例代碼如下所示。二、動(dòng)態(tài)圖a=paddle.to_tensor(np.array([1,2,3]))b=paddle.to_tensor(np.array([4,5,6]))foriinrange(10):r=paddle.rand([1,])ifr>0.5:c=paddle.pow(a,i)+bprint("{}+>{}".format(i,c.numpy()))else:c=paddle.pow(a,i)-bprint("{}->{}".format(i,c.numpy()))B使用動(dòng)態(tài)圖,可以根據(jù)控制流選擇不同的分支網(wǎng)絡(luò)同時(shí)方便構(gòu)建權(quán)重共享網(wǎng)絡(luò),示例代碼如下所示。二、動(dòng)態(tài)圖inputs=paddle.rand((256,64))linear=paddle.nn.Linear(64,8,bias_attr=False)loss_fn=paddle.nn.MSELoss()optimizer=paddle.optimizer.Adam(0.01,parameters=linear.parameters())foriinrange(10):hidden=linear(inputs)#weightfrominputtohiddenissharedwiththelinearmappingfromhiddento#outputoutputs=paddle.matmul(hidden,linear.weight,transpose_y=True)loss=loss_fn(outputs,inputs)loss.backward()print("step:{},loss:{}".format(i,loss.numpy()))optimizer.step()optimizer.clear_grad()C三、模型開(kāi)發(fā)1、數(shù)據(jù)處理(1)數(shù)據(jù)收集內(nèi)置數(shù)據(jù)集在訓(xùn)練模型的過(guò)程中,第一步就是對(duì)數(shù)據(jù)進(jìn)行收集,PaddlePaddle框架將常用的數(shù)據(jù)集封裝到了API中,在使用過(guò)程中,可以直接調(diào)用API進(jìn)行查看,存放數(shù)據(jù)集的主要目錄為paddle.vision.datasets與paddle.text。三、模型開(kāi)發(fā)內(nèi)置數(shù)據(jù)集查看PaddlePaddle中包含的數(shù)據(jù)集,示例代碼如下所示。importpaddleprint('視覺(jué)相關(guān)數(shù)據(jù)集:',paddle.vision.datasets.__all__)print('自然語(yǔ)言相關(guān)數(shù)據(jù)集:',paddle.text.__all__)在調(diào)用內(nèi)部提供的數(shù)據(jù)集時(shí),可用mode來(lái)表示訓(xùn)練集與測(cè)試集,數(shù)據(jù)集接口會(huì)自動(dòng)從遠(yuǎn)端下載數(shù)據(jù)集到本機(jī)緩存目錄~/.cache/paddle/dataset。示例代碼如下所示。frompaddle.vision.transformsimportToTensor#訓(xùn)練數(shù)據(jù)集用ToTensor將數(shù)據(jù)格式轉(zhuǎn)為Tensortrain_dataset=paddle.vision.datasets.MNIST(mode='train',transform=ToTensor())#驗(yàn)證數(shù)據(jù)集val_dataset=paddle.vision.datasets.MNIST(mode='test',transform=ToTensor())三、模型開(kāi)發(fā)自定義數(shù)據(jù)集在實(shí)際應(yīng)用過(guò)程中,發(fā)現(xiàn)內(nèi)置的數(shù)據(jù)集并不能滿足要求,需要自己根據(jù)已有的相關(guān)數(shù)據(jù)來(lái)定義數(shù)據(jù)集,示例代碼如下所示。importpaddlefrompaddle.ioimportDatasetBATCH_SIZE=64BATCH_NUM=20IMAGE_SIZE=(28,28)CLASS_NUM=10classMyDataset(Dataset):三、模型開(kāi)發(fā)自定義數(shù)據(jù)集在實(shí)際應(yīng)用過(guò)程中,發(fā)現(xiàn)內(nèi)置的數(shù)據(jù)集并不能滿足要求,需要自己根據(jù)已有的相關(guān)數(shù)據(jù)來(lái)定義數(shù)據(jù)集,示例代碼如下所示。"""步驟一:繼承paddle.io.Dataset類"""def__init__(self,num_samples):"""步驟二:實(shí)現(xiàn)構(gòu)造函數(shù),定義數(shù)據(jù)集大小"""super(MyDataset,self).__init__()self.num_samples=num_samplesdef__getitem__(self,index):三、模型開(kāi)發(fā)"""步驟一:繼承paddle.io.Dataset類"""def__init__(self,num_samples):"""步驟二:實(shí)現(xiàn)構(gòu)造函數(shù),定義數(shù)據(jù)集大小"""super(MyDataset,self).__init__()self.num_samples=num_samplesdef__getitem__(self,index):"""步驟三:實(shí)現(xiàn)__getitem__方法,定義指定index時(shí)如何獲取數(shù)據(jù),并返回單條數(shù)據(jù)(訓(xùn)練數(shù)據(jù),對(duì)應(yīng)的標(biāo)簽)"""data=paddle.uniform(IMAGE_SIZE,dtype='float32')label=paddle.randint(0,CLASS_NUM-1,dtype='int64')returndata,labeldef__len__(self):三、模型開(kāi)發(fā)"""步驟四:實(shí)現(xiàn)__len__方法,返回?cái)?shù)據(jù)集總數(shù)目"""returnself.num_samples#測(cè)試定義的數(shù)據(jù)集custom_dataset=MyDataset(BATCH_SIZE*BATCH_NUM)print('=============customdataset=============')fordata,labelincustom_dataset:print(data.shape,label.shape)break三、模型開(kāi)發(fā)(2)數(shù)據(jù)加載在PaddlePaddle中,對(duì)數(shù)據(jù)加載需要調(diào)用paddle.io.DataLoader函數(shù),示例代碼如下所示。在代碼中定義一個(gè)數(shù)據(jù)迭代器train_loader,用于加載訓(xùn)練數(shù)據(jù)。通過(guò)batch_size=64設(shè)置數(shù)據(jù)集的批大小為64,通過(guò)shuffle=True,在取數(shù)據(jù)前會(huì)打亂數(shù)據(jù)。train_loader=paddle.io.DataLoader(custom_dataset,batch_size=BATCH_SIZE,shuffle=True)#如果要加載內(nèi)置數(shù)據(jù)集,將custom_dataset換為train_dataset即可forbatch_id,datainenumerate(train_loader()):x_data=data[0]y_data=data[1]print(x_data.shape)print(y_data.shape)break三、模型開(kāi)發(fā)(3)數(shù)據(jù)預(yù)處理獲取數(shù)據(jù)后,如果不對(duì)數(shù)據(jù)進(jìn)行處理的話,會(huì)出現(xiàn)擬合的問(wèn)題,在PaddlePaddle中,提供了數(shù)據(jù)增強(qiáng)API(定義在領(lǐng)域目錄的transforms下),對(duì)訓(xùn)練數(shù)據(jù)做增強(qiáng),使數(shù)據(jù)進(jìn)行處理得到不同的圖像,從而泛化數(shù)據(jù)集。基于框架內(nèi)置數(shù)據(jù)集針對(duì)PaddlePaddle框架中的內(nèi)置數(shù)據(jù)集,可以使用paddle.vision.transforms下的方法,常用方法如圖所示。三、模型開(kāi)發(fā)三、模型開(kāi)發(fā)示例:對(duì)內(nèi)置數(shù)據(jù)集MNIST數(shù)據(jù)集隨機(jī)調(diào)整亮度、對(duì)比度、飽和度和改變圖片大小,示例代碼如下所示。frompaddle.vision.transformsimportCompose,Resize,ColorJitter#定義想要使用的數(shù)據(jù)增強(qiáng)方式,包括隨機(jī)調(diào)整亮度、對(duì)比度和飽和度,改變圖片大小transform=Compose([ColorJitter(),Resize(size=32)])#通過(guò)transform參數(shù)傳遞定義好的數(shù)據(jù)增強(qiáng)方法即可完成對(duì)自帶數(shù)據(jù)集的增強(qiáng)train_dataset=paddle.vision.datasets.MNIST(mode='train',transform=transform)三、模型開(kāi)發(fā)自定義數(shù)據(jù)集importpaddlefrompaddle.ioimportDatasetfrompaddle.vision.transformsimportCompose,ResizeBATCH_SIZE=64BATCH_NUM=20IMAGE_SIZE=(28,28)CLASS_NUM=10classMyDataset(Dataset):def__init__(self,num_samples):super(MyDataset,self).__init__()self.num_samples=num_samples#在`__init__`中定義數(shù)據(jù)增強(qiáng)方法,此處為調(diào)整圖像大小self.transform=Compose([Resize(size=32)])三、模型開(kāi)發(fā)def__getitem__(self,index):data=paddle.uniform(IMAGE_SIZE,dtype='float32')#在`__getitem__`中對(duì)數(shù)據(jù)集使用數(shù)據(jù)增強(qiáng)方法data=self.transform(data.numpy())label=paddle.randint(0,CLASS_NUM-1,dtype='int64')returndata,labeldef__len__(self):returnself.num_samples#測(cè)試定義的數(shù)據(jù)集custom_dataset=MyDataset(BATCH_SIZE*BATCH_NUM)print('=============customdataset=============')fordata,labelincustom_dataset:print(data.shape,label.shape)break三、模型開(kāi)發(fā)2、模型組網(wǎng)(1)內(nèi)置模型在PaddlePaddle框架中內(nèi)置了計(jì)算機(jī)視覺(jué)領(lǐng)域的常用模型,在進(jìn)行計(jì)算機(jī)視覺(jué)任務(wù)實(shí)現(xiàn)過(guò)程中,可以通過(guò)調(diào)用內(nèi)置的模型,這些內(nèi)置模型存儲(chǔ)在paddle.vision.models目錄下,可以通過(guò)以下命令查看內(nèi)置的網(wǎng)絡(luò)模型。print('飛槳框架內(nèi)置模型:',paddle.vision.models.__all__)如果想調(diào)用飛槳框架內(nèi)置模型中的LeNet模型,示例代碼如下所示。lenet=paddle.vision.models.LeNet()三、模型開(kāi)發(fā)2、模型組網(wǎng)可以使用paddle.summary()方法查看模型的每一層輸入輸出,示例代碼如下所示。paddle.summary(lenet,
(64,
1,
28,
28))運(yùn)行代碼,會(huì)發(fā)現(xiàn)顯示出lenet模型的結(jié)構(gòu)和輸入輸出,以及l(fā)enet模型中包含的數(shù)據(jù),如圖所示。三、模型開(kāi)發(fā)(2)使用Sequential構(gòu)建模型的語(yǔ)法格式如下所示。classpaddle.nn.Sequential(*layers)使用Sequential構(gòu)建模型示例代碼如下所示。importpaddle#Sequential形式組網(wǎng)mnist=paddle.nn.Sequential(#構(gòu)造一個(gè)Flatten類的可調(diào)用對(duì)象paddle.nn.Flatten(),#定義一個(gè)線性變換層,輸入值為28*28=784,輸出層為512。paddle.nn.Linear(784,512),#使用ReLU激活函數(shù)paddle.nn.ReLU(),#正則化數(shù)據(jù),設(shè)置丟棄代理為0.2paddle.nn.Dropout(0.2),paddle.nn.Linear(512,10))三、模型開(kāi)發(fā)(3)在forward中使用聲明的Layer變量進(jìn)行前向計(jì)算。示例代碼如下所示。#Layer類繼承方式組網(wǎng)classMnist(paddle.nn.Layer):def__init__(self):super(Mnist,self).__init__()self.flatten=paddle.nn.Flatten()self.linear_1=paddle.nn.Linear(784,512)self.linear_2=paddle.nn.Linear(512,10)self.relu=paddle.nn.ReLU()self.dropout=paddle.nn.Dropout(0.2)defforward(self,inputs):y=self.flatten(inputs)y=self.linear_1(y)y=self.relu(y)y=self.dropout(y)y=self.linear_2(y)returnymnist_2=Mnist()三、模型開(kāi)發(fā)3、模型訓(xùn)練第一步:通過(guò)Sequential方法對(duì)模型進(jìn)行組網(wǎng),通過(guò)paddle.Model對(duì)模型進(jìn)行封裝。#定義網(wǎng)絡(luò)結(jié)構(gòu)(采用Sequential組網(wǎng)方式)mnist=paddle.nn.Sequential(paddle.nn.Flatten(1,-1),paddle.nn.Linear(784,512),paddle.nn.ReLU(),paddle.nn.Dropout(0.2),paddle.nn.Linear(512,10))model=paddle.Model(mnist)三、模型開(kāi)發(fā)3、模型訓(xùn)練第二步:在使用Model.fit進(jìn)行模型訓(xùn)練時(shí),需要通過(guò)Model.prepare()接口提前配置模型優(yōu)化器、Loss計(jì)算方法和精度計(jì)算方法等。#為模型訓(xùn)練做準(zhǔn)備,設(shè)置優(yōu)化器,損失函數(shù)和精度計(jì)算方式model.prepare(paddle.optimizer.Adam(parameters=model.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy())三、模型開(kāi)發(fā)3、模型訓(xùn)練第三步:做好準(zhǔn)備工作后,調(diào)用fit()來(lái)啟動(dòng)訓(xùn)練過(guò)程,fit中主要包含訓(xùn)練數(shù)據(jù)集、訓(xùn)練輪次和單次訓(xùn)練數(shù)據(jù)批次大小。#啟動(dòng)模型訓(xùn)練,指定訓(xùn)練數(shù)據(jù)集,設(shè)置訓(xùn)練輪次,設(shè)置每次數(shù)據(jù)集計(jì)算的批次大小,設(shè)置日志格式model.fit(train_dataset,epochs=5,batch_size=64,verbose=1)三、模型開(kāi)發(fā)3、模型訓(xùn)練第四步:訓(xùn)練好的模型進(jìn)行評(píng)估可以使用evaluate()。#用evaluate在測(cè)試集上對(duì)模型進(jìn)行驗(yàn)證eval_result=model.evaluate(test_dataset,verbose=1)第五步:使用model.predict()對(duì)訓(xùn)練好的模型進(jìn)行預(yù)測(cè)驗(yàn)證,驗(yàn)證過(guò)程中只需要使用訓(xùn)練好的模型對(duì)預(yù)測(cè)測(cè)試數(shù)據(jù)進(jìn)行計(jì)算即可。#用predict在測(cè)試集上對(duì)模型進(jìn)行測(cè)試test_result=model.predict(test_dataset)四、任務(wù)實(shí)施采用uci-housing數(shù)據(jù)集,這是經(jīng)典線性回歸的數(shù)據(jù)集。數(shù)據(jù)集共7084條數(shù)據(jù),可以拆分成506行,每行14列。前13列用來(lái)描述房屋的各種信息,最后一列為該類房屋價(jià)格中位數(shù)。前13列用來(lái)描述房屋的各種信息。1、任務(wù)背景四、任務(wù)實(shí)施2、實(shí)驗(yàn)思路感謝觀看任務(wù)4線性回歸—預(yù)測(cè)程序員月薪任務(wù)4線性回歸—預(yù)測(cè)程序員月薪010203機(jī)器學(xué)習(xí)線性回歸sklearn庫(kù)一、機(jī)器學(xué)習(xí)1、什么是機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的一種途徑,它是讓計(jì)算機(jī)通過(guò)一定的算法去分析數(shù)據(jù)中存在的規(guī)律,不斷提升對(duì)新數(shù)據(jù)預(yù)測(cè)性能的過(guò)程。換一種說(shuō)法機(jī)器學(xué)習(xí)是研究計(jì)算機(jī)如何模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為。我們可以將這種關(guān)系以模型權(quán)重的方式存儲(chǔ)下來(lái),進(jìn)而使用模型對(duì)未知結(jié)果的學(xué)生進(jìn)行預(yù)測(cè)。這里的權(quán)重表示專業(yè)課和選修課對(duì)結(jié)果的影響程度是不同的。1分類算法2回歸算法3聚類算法一、機(jī)器學(xué)習(xí)2、機(jī)器學(xué)習(xí)算法分類二、線性回歸如圖所示,橫軸表示房屋面積,縱軸表示房?jī)r(jià),圖中散點(diǎn)是部分抽樣的數(shù)據(jù)。那么從散點(diǎn)分布上來(lái)看,自變量房屋面積與房?jī)r(jià)之間存在著一定的線性關(guān)系,y=ax+b。直線與x軸夾角的正切就是斜率a,直線與y軸的交點(diǎn)也就是截距b。我們把上面一元函數(shù)中的參數(shù)代號(hào)變換一下,即把a(bǔ)變成w,那么函數(shù)形式就變成了y=wx+b,這就成了機(jī)器學(xué)習(xí)中一元線性回歸模型的表述,這里的w就稱為權(quán)重,b稱為偏置。三、sklearn庫(kù)sklearn是針Python編程語(yǔ)言的免費(fèi)機(jī)器學(xué)習(xí)庫(kù),廣泛地用于實(shí)際生產(chǎn)工作中,使用sklearn進(jìn)行機(jī)器學(xué)習(xí),能有效地降低學(xué)習(xí)門檻。sklearn是一款開(kāi)源的Python機(jī)器學(xué)習(xí)庫(kù),它基于NumPy和SciPy,提供了大量用于數(shù)據(jù)挖掘和分析的工具,以及支持多種算法的一系列接口。在派Lab實(shí)訓(xùn)環(huán)境中已經(jīng)內(nèi)置了sklearn庫(kù),如果想要使用sklearn中的某些方法,我們首先要導(dǎo)入sklearn庫(kù)。#導(dǎo)入sklearn包,并將其命名為skimportsklearnassk#查看sklearn包是否導(dǎo)入成功sk三、sklearn庫(kù)如果顯示以下結(jié)果,則表示導(dǎo)入成功。<module'sklearn'from'/opt/conda/lib/python3.9/site-packages/sklearn/__init__.py'>四、任務(wù)實(shí)施回歸問(wèn)題就是預(yù)測(cè)自變量與因變量之間的關(guān)系,是機(jī)器學(xué)習(xí)中常見(jiàn)的基本問(wèn)題。本任務(wù)將通過(guò)構(gòu)建線性回歸模型實(shí)現(xiàn)對(duì)程序員月薪的自動(dòng)預(yù)測(cè),從而學(xué)習(xí)機(jī)器學(xué)習(xí)中的線性回歸算法的基本原理以及熟練掌握線性回歸算法的應(yīng)用流程。預(yù)測(cè)程序員月薪使用的數(shù)據(jù)集包含1800名程序員的樣本數(shù)據(jù),其中包含程序員的性別、年齡、工齡(入職月數(shù))、月薪。1、任務(wù)背景四、任務(wù)實(shí)施2、實(shí)驗(yàn)思路感謝觀看任務(wù)5
卷積神經(jīng)網(wǎng)絡(luò)—貓狗分類任務(wù)5
卷積神經(jīng)網(wǎng)絡(luò)—貓狗分類0102機(jī)器學(xué)習(xí)分類卷積神經(jīng)網(wǎng)絡(luò)概述一、機(jī)器學(xué)習(xí)分類1、監(jiān)督學(xué)習(xí)監(jiān)督學(xué)習(xí)是指已知樣本的結(jié)果(比如考試答案,生產(chǎn)結(jié)果等),使其達(dá)到所要求性能或結(jié)果的過(guò)程,主要任務(wù)是通過(guò)標(biāo)記的訓(xùn)練數(shù)據(jù)來(lái)推斷一個(gè)其中對(duì)應(yīng)的功能,其訓(xùn)練數(shù)據(jù)包括類別信息(數(shù)據(jù)標(biāo)簽和特征),如圖所示有一個(gè)樣本唐老鴨和根據(jù)它的特征定義的模型,從而得出結(jié)果是它屬于鴨子類。線性回歸屬于監(jiān)督學(xué)習(xí)。一、機(jī)器學(xué)習(xí)分類2、非監(jiān)督學(xué)習(xí)非監(jiān)督學(xué)習(xí)也稱為無(wú)監(jiān)督學(xué)習(xí),其樣本中只含有特征,不包含標(biāo)簽信息,因此在訓(xùn)練時(shí)并不知道分類的結(jié)果是否正確。如圖所示,有一群小動(dòng)物沒(méi)有任何標(biāo)簽,讓機(jī)器自己學(xué)習(xí)來(lái)對(duì)小動(dòng)物進(jìn)行歸類,把有相似特征的歸屬于一類,把五個(gè)小動(dòng)物分為了兩組一組有鴨子的特征,另一組包含的是其他動(dòng)物。一、機(jī)器學(xué)習(xí)分類2、非監(jiān)督學(xué)習(xí)當(dāng)有新數(shù)據(jù)(另一個(gè)鴨子)來(lái)的時(shí)候會(huì)把預(yù)測(cè)模型拿出來(lái)比對(duì),對(duì)他進(jìn)行歸類。如圖所示,它屬于鴨子類。二、卷積神經(jīng)網(wǎng)絡(luò)概述CNN可以應(yīng)用在場(chǎng)景分類,圖像分類,現(xiàn)在還可以應(yīng)用到自然語(yǔ)言處理(NLP)方面的很多問(wèn)題,比如句子分類等。下面如圖是一個(gè)簡(jiǎn)單的CNN結(jié)構(gòu),這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)是用于一個(gè)四類分類的問(wèn)題,分別是狗、貓、船和鳥(niǎo),圖中的輸入圖片是屬于船一類。二、卷積神經(jīng)網(wǎng)絡(luò)概述1、輸入層輸入層負(fù)責(zé)神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)輸入,例如在處理圖像時(shí),輸入層代表圖片的像素矩陣。在卷積神經(jīng)網(wǎng)絡(luò)中用三維張量類型表示(Length,Width,Channel),Length和Width代表圖像大小尺寸,Channel代表圖像的色彩通道,例如黑白圖像的深度為1,彩色圖像(RGB色彩模式)的深度為3。二、卷積神經(jīng)網(wǎng)絡(luò)概述2、卷積層卷積層也被稱為過(guò)濾器或者內(nèi)核,在卷積層中通過(guò)一塊塊卷積核(ConventionalKernel)在原始圖像上平移來(lái)提取特征,卷積層中每個(gè)節(jié)點(diǎn)的輸入是上一層的一小塊數(shù)據(jù),卷積層將神經(jīng)網(wǎng)絡(luò)中每一塊數(shù)據(jù)進(jìn)行深入分析,提取特征,得到特征映射。通常卷積層處理過(guò)的節(jié)點(diǎn)矩陣會(huì)變深。二、卷積神經(jīng)網(wǎng)絡(luò)概述2、卷積層不同的卷積核可以處理不同問(wèn)題,如圖所示,使用卷積操作實(shí)現(xiàn)辣椒邊緣檢測(cè)。在卷積層提取數(shù)據(jù)特征進(jìn)行的操作叫作卷積運(yùn)算,如圖所示,卷積運(yùn)算對(duì)兩個(gè)輸入張量(輸入和卷積核)進(jìn)行卷積,并輸出一個(gè)代表來(lái)自每個(gè)輸入的信息的張量。二、卷積神經(jīng)網(wǎng)絡(luò)概述3、激勵(lì)層激勵(lì)層使用激活函數(shù)為神經(jīng)網(wǎng)絡(luò)引入非線性,非線性意味著輸入和輸出的關(guān)系是一條曲線,能夠刻畫(huà)輸入中更為復(fù)雜的變化。在搭建CNN時(shí)主要使用tf.nn.relu(修正線性單元)。評(píng)價(jià)某個(gè)激活函數(shù)是否有用時(shí),主要考慮以下兩個(gè)因素:函數(shù)是單調(diào)的,這樣輸出便會(huì)隨著輸入的增長(zhǎng)而增長(zhǎng),使利用梯度下降法尋找局部極值點(diǎn)成為可能。函數(shù)是可微分的,保證該函數(shù)定義域內(nèi)的任意一點(diǎn)上導(dǎo)數(shù)都存在,使梯度下降法能夠正常使用來(lái)自這類激活函數(shù)的輸出。12二、卷積神經(jīng)網(wǎng)絡(luò)概述4、池化層使用池化層既可以加快計(jì)算速度也有防止過(guò)擬合問(wèn)題的作用。和卷積層類似,池化層前向傳播的過(guò)程也是通過(guò)移動(dòng)一個(gè)類似過(guò)濾器的結(jié)構(gòu)完成的,池化層使用最大值計(jì)算的操作叫作最大池化層(max-pooling),使用平均值計(jì)算的操作叫作平均池化層(mean-pooling)。二、卷積神經(jīng)網(wǎng)絡(luò)概述4、池化層圖中有一個(gè)4×4的平面,使用2×2的過(guò)濾器且步長(zhǎng)為2進(jìn)行池化。使用最大池化操作過(guò)濾器篩選出每次中的最大數(shù)值,使用平均池化操作過(guò)濾器將所有數(shù)據(jù)累加求取平均值作為池化特征結(jié)果。最大池化通常使用2×2的卷積核,主要原因在于它是在單個(gè)通路上能夠?qū)嵤┑淖钚?shù)量的降采樣,若使用1×1的卷積核,則輸出與輸入相同。平均池化用于當(dāng)整個(gè)卷積核都非常重要時(shí),若需實(shí)現(xiàn)值的縮減,平均池化非常有效。二、卷積神經(jīng)網(wǎng)絡(luò)概述5、全連接層全連接層每一個(gè)神經(jīng)元都和上一層所有神經(jīng)元相連,主要通過(guò)激活函數(shù)實(shí)現(xiàn)預(yù)測(cè)分類,經(jīng)過(guò)多次卷積層和池化層的處理后,此時(shí)數(shù)據(jù)中的信息已經(jīng)抽象成了信息含量更高的特征,在卷積神經(jīng)網(wǎng)絡(luò)的最后通常由1到2個(gè)全連接層完成分類任務(wù)。三、任務(wù)實(shí)施貓狗分類使用CIFAR10數(shù)據(jù)集,CIFAR10數(shù)據(jù)集包含60,000張32x32的彩色圖片,10個(gè)類別,每個(gè)類包含6,000張。其中50,000張圖片作為訓(xùn)練集,10000張作為驗(yàn)證集。1、任務(wù)背景三、任務(wù)實(shí)施2、實(shí)驗(yàn)思路感謝觀看任務(wù)6
LeNet之眼疾識(shí)別任務(wù)6
LeNet之眼疾識(shí)別01020304LeNet-5AlexNetVGGNetGoogleLeNet一、LeNet-5LeNet-5卷積神經(jīng)網(wǎng)絡(luò)利用卷積、參數(shù)共享、池化等操作提取特征,避免大量的計(jì)算成本,最后再使用全連接神經(jīng)網(wǎng)絡(luò)進(jìn)行分類識(shí)別。LeNet-5共包含七層卷積網(wǎng)絡(luò)(不包含輸入層)組成,結(jié)構(gòu)如圖所示,輸入的原始圖像大小是32*32像素,卷積層使用C開(kāi)頭,池化層使用S開(kāi)頭,全連接使用F開(kāi)頭。一、LeNet-5使用LeNet神經(jīng)網(wǎng)絡(luò)的工作流程如下所示:(1)卷積層(C1層),卷積核的大小為5*5,卷積核數(shù)量為6個(gè),輸出結(jié)果大小為28*28,即(32-5+1)×(32-5+1)=28×28,由于同個(gè)卷積核每個(gè)神經(jīng)元均使用相同的參數(shù),因此參數(shù)個(gè)數(shù)為(5×5+1)×6=156,其中5×5為卷積核參數(shù),1為偏置參數(shù);每層的連接數(shù)為每個(gè)卷積核參數(shù)*特征圖,即(5×5+1)×6×28×28=122304個(gè)連接數(shù)。(2)S2層S2是一個(gè)池化層,主要作用是做池化或特征降維,池化單元為2*2,所以6個(gè)特征圖的大小經(jīng)池化后變?yōu)?4*14。與常見(jiàn)的池化不同,該模型中,池化單元之間沒(méi)有重疊,在池化區(qū)域內(nèi)進(jìn)行聚合統(tǒng)計(jì)后得到新的特征值,相當(dāng)于圖像大小減半,因此卷積后的28×28圖像經(jīng)2×2池化后就變?yōu)?4×14,而圖像的個(gè)數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 認(rèn)識(shí)野生菌早教課程設(shè)計(jì)
- 2024年中國(guó)混合果蔬乳飲料市場(chǎng)調(diào)查研究報(bào)告
- 軟件課程設(shè)計(jì)小組報(bào)告
- 簡(jiǎn)單數(shù)學(xué)電子課程設(shè)計(jì)
- 2024至2030年中國(guó)紅外線烘漆機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年食品級(jí)密封抗水長(zhǎng)壽脂項(xiàng)目可行性研究報(bào)告
- 村里干零工協(xié)議書(shū)
- 面具課程設(shè)計(jì)分享稿
- 2024至2030年中國(guó)手腕彈性繃帶行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年化工非標(biāo)設(shè)備項(xiàng)目可行性研究報(bào)告
- 煉鋼廠6機(jī)6流小方坯連鑄機(jī)技術(shù)操作規(guī)程
- 跌倒的護(hù)理 (養(yǎng)老護(hù)理員培訓(xùn)課件)
- 船舶租賃盡職調(diào)查
- 統(tǒng)編教學(xué)小學(xué)語(yǔ)文課外閱讀《細(xì)菌世界歷險(xiǎn)記》導(dǎo)讀課課件
- 植物生理學(xué)-植物的逆境生理
- 【課件】比的基本性質(zhì)
- 小學(xué)英語(yǔ)人教新起點(diǎn)五年級(jí)上冊(cè)Unit3Animalsunit3storytime
- 2023年江蘇省淮安市中考化學(xué)試卷
- 小學(xué)英語(yǔ)名師工作室工作計(jì)劃2篇
- 中國(guó)旅游嘉興風(fēng)土人情城市介紹旅游攻略PPT圖文課件
- 出口退稅培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論