版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.5任務(wù)實(shí)施:Pytorch神經(jīng)網(wǎng)絡(luò)搭建4.5.1任務(wù)書人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks,簡寫為ANNs)也簡稱為神經(jīng)網(wǎng)絡(luò)(NNs)或稱作連接模型(ConnectionModel),它是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)整內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。在這里我們初始化的神經(jīng)網(wǎng)絡(luò)模型為卷積層→Relu層→池化層→全連接層→Relu層→全連接層。本次實(shí)驗(yàn)的主要任務(wù)是使用四種不同的方法構(gòu)建神經(jīng)網(wǎng)絡(luò)并輸出。4.5.2任務(wù)分組表4-10學(xué)生任務(wù)分配表班級組號指導(dǎo)老師組長學(xué)號成員數(shù)量組長任務(wù)組員姓名學(xué)號任務(wù)分工4.5.3獲取信息引導(dǎo)問題1:神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的核心知識,也是人工智能領(lǐng)域必不可少的學(xué)習(xí)環(huán)節(jié)。查閱資料,了解神經(jīng)網(wǎng)絡(luò)的起源、定義和理論基礎(chǔ)。神經(jīng)網(wǎng)絡(luò)的起源:神經(jīng)網(wǎng)絡(luò)是一種計(jì)算模型,它被設(shè)計(jì)用于模擬人腦的神經(jīng)網(wǎng)絡(luò),在進(jìn)行模式識別、分類、數(shù)據(jù)挖掘等任務(wù)時(shí)具有很強(qiáng)的能力。神經(jīng)網(wǎng)絡(luò)的起源可以追溯到20世紀(jì)40年代和50年代,當(dāng)時(shí)WarrenMcCulloch和WalterPitts提出了一個(gè)基于數(shù)學(xué)模型的神經(jīng)元之間連接方式的理論,開創(chuàng)了神經(jīng)網(wǎng)絡(luò)研究的先河。這個(gè)早期的神經(jīng)網(wǎng)絡(luò)模型被稱為“McCulloch-Pitts神經(jīng)元模型”,它的結(jié)構(gòu)非常簡單,只包括一個(gè)二值輸入和一個(gè)輸出,但是這個(gè)模型揭示了大腦神經(jīng)元之間的聯(lián)系,奠定了現(xiàn)代神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。1960年代,F(xiàn)rankRosenblatt提出了感知機(jī)模型,它是第一個(gè)帶有學(xué)習(xí)功能的神經(jīng)網(wǎng)絡(luò)模型。感知機(jī)模型使用了類似于McCulloch-Pitts模型的結(jié)構(gòu),但加入了權(quán)重和偏置,并使用梯度下降等方法進(jìn)行訓(xùn)練。感知機(jī)模型在當(dāng)時(shí)受到了廣泛的關(guān)注,但由于其局限性,如不能解決異或問題等,導(dǎo)致其發(fā)展受到限制。1980年代晚期,隨著BP算法的出現(xiàn),神經(jīng)網(wǎng)絡(luò)得到了renewedinterest,這個(gè)算法解決了神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中遇到的梯度消失和梯度爆炸問題,在深層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中發(fā)揮了關(guān)鍵作用。隨后,隨著計(jì)算硬件和數(shù)據(jù)量的增加,神經(jīng)網(wǎng)絡(luò)的應(yīng)用范圍不斷擴(kuò)大,如語音識別、圖像處理、自然語言處理等,神經(jīng)網(wǎng)絡(luò)已成為機(jī)器學(xué)習(xí)中不可或缺的一部分。神經(jīng)網(wǎng)絡(luò)的定義:人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks,簡寫為ANNs)也簡稱為神經(jīng)網(wǎng)絡(luò)(NNs)或稱作連接模型(ConnectionModel),它是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)整內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。神經(jīng)網(wǎng)絡(luò)的理論基礎(chǔ):神經(jīng)網(wǎng)絡(luò)的理論基礎(chǔ)是由神經(jīng)元和它們之間的連接構(gòu)成的。每個(gè)神經(jīng)元都有一個(gè)或多個(gè)輸入,這些輸入被加權(quán)并傳遞到激活函數(shù)中,計(jì)算得出輸出值。這個(gè)輸出值又可以作為下一個(gè)神經(jīng)元的輸入,構(gòu)成復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。這種“學(xué)習(xí)機(jī)器”可以在訓(xùn)練過程中調(diào)整權(quán)重和偏差,以最小化模型對于訓(xùn)練數(shù)據(jù)的預(yù)測誤差。常見的神經(jīng)網(wǎng)絡(luò)包括前饋神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)等。4.5.4工作實(shí)施引導(dǎo)問題2:按照操作手冊的步驟創(chuàng)建實(shí)驗(yàn)檢測路徑及文件。雙擊桌面的“pycharm”軟件在桌面建立工程文件,命名為“test5”,我們創(chuàng)建的py文件就會保存在這個(gè)路徑里面,接著在此文件下創(chuàng)建Python文件“Network.py”,我們的代碼撰寫在此文件中。該文件路徑為“/home/techuser/Desktop/test5/Network.py”。引導(dǎo)問題3:查看相關(guān)資料,掌握創(chuàng)建神經(jīng)網(wǎng)絡(luò)的第一種方法。請?jiān)斒霾⒀a(bǔ)充完整通用解法步驟,在軟件中編寫代碼,記錄出現(xiàn)的問題及解決的方法。創(chuàng)建神經(jīng)網(wǎng)絡(luò)第一種方法的步驟如下(敘述方式描述如步驟1和2這樣描述):步驟1:導(dǎo)入相關(guān)依賴包,如torch和torch.nn.functional的導(dǎo)入代碼:importtorchimporttorch.nn.functionalasF步驟2:定義神經(jīng)網(wǎng)絡(luò)模型類,類名取為Net1并繼承torch.nn.Module類。代碼為:classNet1(torch.nn.Module):步驟3:對類中的__init__()函數(shù)進(jìn)行重寫,__init__()函數(shù)中主要是初始化一些內(nèi)部需要用到的神經(jīng)網(wǎng)絡(luò)狀態(tài)信息。在其中初始化具有可學(xué)習(xí)參數(shù)的層,如全連接層,卷積層。代碼為:def__init__(self):super(Net1,self).__init__()self.conv1=torch.nn.Conv2d(3,32,3,1,1)self.dense1=torch.nn.Linear(32*3*3,128)self.dense2=torch.nn.Linear(128,10)步驟4:定義forward()函數(shù),表示在建立模型后,進(jìn)行神經(jīng)元網(wǎng)絡(luò)的前向傳播。在重寫后的forward()函數(shù)中,數(shù)據(jù)x首先進(jìn)入卷積層conv1進(jìn)行處理,處理后的數(shù)據(jù)在經(jīng)過Relu層的relu函數(shù)處理,接著池化層處理數(shù)據(jù),然后將數(shù)據(jù)變?yōu)?維,最后經(jīng)過relu函數(shù)以及兩層全連接層處理得到最后的結(jié)果。defforward(self,x):x=F.max_pool2d(F.relu(self.conv1(x)),2)x=x.view(x.size(0),-1)x=F.relu(self.dense1(x))x=self.dense2()returnx步驟5:實(shí)例化神經(jīng)網(wǎng)絡(luò)模型并打印輸出。print("Method1:")model1=Net1()print(model1)出現(xiàn)的問題及解決的方法:學(xué)生根據(jù)出現(xiàn)的問題進(jìn)行記錄引導(dǎo)問題4:查看相關(guān)資料,掌握創(chuàng)建神經(jīng)網(wǎng)絡(luò)的第二種方法?;诘谝环N創(chuàng)建神經(jīng)網(wǎng)絡(luò)的方法,歸納第二種方法的核心步驟和核心代碼,并記錄出現(xiàn)的問題及解決的方法。創(chuàng)建神經(jīng)網(wǎng)絡(luò)第二種方法:第二種方法同樣是對torch.nn.Module類的重載,不過這種方法利用torch.nn.Sequential()容器進(jìn)行快速搭建,模型的各層被順序添加到容器中。核心代碼:classNet2(torch.nn.Module):def__init__(self):super(Net2,self).__init__()self.conv=torch.nn.Sequential(torch.nn.Conv2d(3,32,3,1,1),torch.nn.ReLU(),torch.nn.MaxPool2d(2))self.dense=torch.nn.Sequential(torch.nn.Linear(32*3*3,128),torch.nn.ReLU(),torch.nn.Linear(128,10))defforward(self,x):conv_out=self.conv(x)res=conv_out.view(conv_out.size(0),-1)out=self.dense(res)returnout出現(xiàn)的問題及解決的方法:學(xué)生根據(jù)出現(xiàn)的問題進(jìn)行記錄引導(dǎo)問題5:查看相關(guān)資料,掌握創(chuàng)建神經(jīng)網(wǎng)絡(luò)的第三、第四種方法,完成核心步驟代碼書寫并記錄出現(xiàn)的問題及解決的方法。創(chuàng)建神經(jīng)網(wǎng)絡(luò)第三種方法:第三種方法是對第二種方法的改進(jìn):通過add_module()添加每一層,并且為每一層增加了一個(gè)單獨(dú)的名字,其他的方面與第二種方法一樣。核心代碼為:classNet3(torch.nn.Module):def__init__(self):super(Net3,self).__init__()self.conv=torch.nn.Sequential()self.conv.add_module("conv1",torch.nn.Conv2d(3,32,3,1,1))self.conv.add_module("relu1",torch.nn.ReLU())self.conv.add_module("pool1",torch.nn.MaxPool2d(2))self.dense=torch.nn.Sequential()self.dense.add_module("dense1",torch.nn.Linear(32*3*3,128))self.dense.add_module("relu2",torch.nn.ReLU())self.dense.add_module("dense2",torch.nn.Linear(128,10))defforward(self,x):conv_out=self.conv1(x)res=conv_out.view(conv_out.size(0),-1)out=self.dense(res)returnout創(chuàng)建神經(jīng)網(wǎng)絡(luò)第四種方法:第四種方法是第三種方法的另外一種寫法,通過字典的形式添加每一層,并且設(shè)置單獨(dú)的層名稱,使代碼更具有可讀性。核心代碼為:fromcollectionsimportOrderedDictclassNet4(torch.nn.Module):def__init__(self):super(Net4,self).__init__()self.conv=torch.nn.Sequential(OrderedDict([("conv1",torch.nn.Conv2d(3,32,3,1,1)),("relu1",torch.nn.ReLU()),("pool",torch.nn.MaxPool2d(2))]))self.dense=torch.nn.Sequential(OrderedDict([("dense1",torch.nn.Linear(32*3*3,128)),("relu2",torch.nn.ReLU()),("dense2",torch.nn.Linear(128,10))]))defforward(self,x):conv_out=self.conv1(x)res=conv_out.view(conv_out.size(0),-1)out=self.dense(res)returnout出現(xiàn)的問題及解決的方法:學(xué)生根據(jù)出現(xiàn)的問題進(jìn)行記錄引導(dǎo)問題6:比較四種神經(jīng)網(wǎng)絡(luò)創(chuàng)建方式的不同,歸納優(yōu)缺點(diǎn),選擇適合自己的一種創(chuàng)建方法。比較四種神經(jīng)網(wǎng)絡(luò)創(chuàng)建方式的異同:第一種構(gòu)建方法是模型構(gòu)建的基本結(jié)構(gòu),包含了類之間的繼承,__init__()函數(shù)和forward()函數(shù)。代碼較為簡單易懂,但是初始化過程不夠規(guī)整。第二種構(gòu)建方法利用torch.nn.Sequential()容器進(jìn)行快速搭建,整個(gè)初始化過程十分的規(guī)整,缺點(diǎn)是每層的編號是默認(rèn)的阿拉伯?dāng)?shù)字,不易區(qū)分。第三種構(gòu)建方法通過add_module()添加每一層,并且為每一層增加了一個(gè)單獨(dú)的名字,避免了第二種方法的缺點(diǎn),但是代碼編寫更加繁瑣。第四種構(gòu)建方法與第三種構(gòu)建方法類似,通過字典的形式添加每一層,并且設(shè)置單獨(dú)的層名稱。選擇適合自己的一種創(chuàng)建方式:學(xué)生根據(jù)自己的喜好進(jìn)行選擇并記憶。4.5.5評價(jià)反饋全面考核學(xué)生的專業(yè)能力和關(guān)鍵能力,采用過程性評價(jià)和結(jié)果評價(jià)相結(jié)合,定性評價(jià)與定量評價(jià)相結(jié)合的考核方法。注重學(xué)生動手能力和在實(shí)踐中分析問題、解決問題能力的考核,在學(xué)習(xí)和應(yīng)用上有創(chuàng)新的學(xué)生給予特別鼓勵(lì)。表4-11考核評價(jià)表 內(nèi)容目標(biāo)方式權(quán)重
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沖擊試驗(yàn)機(jī)建設(shè)項(xiàng)目可行性分析報(bào)告(總投資4000萬元)
- 臥式多級離心泵項(xiàng)目可行性分析報(bào)告范文(總投資7000萬元)
- 公務(wù)員考試熱點(diǎn)紀(jì)檢辦案流程解讀
- 交通規(guī)劃師招聘面試題目參考集
- 三角鐵項(xiàng)目可行性分析報(bào)告范文
- 銀行信貸審查員面試題集及解析
- 深度解析(2026)《GBT 18459-2001傳感器主要靜態(tài)性能指標(biāo)計(jì)算方法》
- 生物科技公司研發(fā)部主任面試問題集
- 特發(fā)性肺纖維化長期管理個(gè)體化方案優(yōu)化
- 酒店前臺服務(wù)面試考核全解析
- 孔隙率測定方法
- 2025 初中中國歷史一二九運(yùn)動的爆發(fā)課件
- 上消化道出血疾病宣教
- 飛模施工方案
- QA矩陣培訓(xùn)課件
- 作文可愛的家鄉(xiāng)教學(xué)課件
- 警犬搜救訓(xùn)練課件
- 耳尖放血療法課件
- 知道智慧樹醫(yī)學(xué)倫理學(xué)(山東大學(xué))滿分測試答案
- 知道智慧樹生命科學(xué)與健康滿分測試答案
- QGDW11970.1-2023輸變電工程水土保持技術(shù)規(guī)程第1部分水土保持方案
評論
0/150
提交評論