<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度學(xué)習(xí) | 學(xué)習(xí)第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

          共 4946字,需瀏覽 10分鐘

           ·

          2024-04-11 08:41

          Hey 朋友,點(diǎn)擊藍(lán)字關(guān)注嗎?

          ec50f893c4e1b7cf1829e8993ed10618.webp


          深度學(xué)習(xí)




          學(xué)習(xí)第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)



          Hi~ 大家好。


          今天學(xué)習(xí)了第一個(gè)深度學(xué)習(xí)的小程序,為了加深理解,對(duì)程序進(jìn)行了逐行解析,并在此進(jìn)行記錄分享,歡迎感興趣的朋友一起討論學(xué)習(xí)。


          # 1

          先給出完整程序:


                    
                      import torch.nn as nn
                    
                    
                      import torch.nn.functional as F
                    
                    
                      
                        

          class Net(nn.Module): def __init__(self): # nn.Module子類的函數(shù)必須在構(gòu)造函數(shù)中執(zhí)行父類的構(gòu)造函數(shù) # 下式等價(jià)于nn.Module.__init__(self) super(Net, self).__init__()

          # 卷積層 '1'表示輸入圖片為單通道, '6'表示輸出通道數(shù),'5'表示卷積核為5*5 self.conv1 = nn.Conv2d(1, 6, 5) # 卷積層 self.conv2 = nn.Conv2d(6, 16, 5) # 仿射層/全連接層,y = Wx + b self.fc1 = nn.Linear(16*5*5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10)

          def forward(self, x): # 卷積 -> 激活 x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) x = F.max_pool2d(F.relu(self.conv2(x)), 2) # reshape,‘-1’表示自適應(yīng) x = x.view(x.size()[0], -1) x = F.relu(self.fc1(x)) x = F.relu(self.fc2(x)) x = self.fc3(x) return x

          net = Net() print(net)




          # 2


          下面進(jìn)行程序分析:


          首先導(dǎo)入必需的庫(kù)


                    
                      import torch.nn as nn
                    
                    
                      import torch.nn.functional as F
                    
                  


          torch.nn: 這個(gè)模塊包含了構(gòu)建神經(jīng)網(wǎng)絡(luò)所需的所有構(gòu)件,比如層結(jié)構(gòu)(線性層、卷積層等)和一些激活函數(shù)。每個(gè)模塊都是nn.Module的子類,并且是為了方便模型構(gòu)建而抽象出的高級(jí)接口。

          torch.nn.functional: 提供了一些函數(shù)式的接口,用于直接對(duì)輸入進(jìn)行操作,如激活函數(shù)(ReLU等)、池化函數(shù)等。這些函數(shù)通常是無(wú)狀態(tài)的,即不包含可訓(xùn)練參數(shù)。


          定義神經(jīng)網(wǎng)絡(luò)


                    
                      
                        class Net(nn.Module):
                      
                    
                  


          這里定義了一個(gè)名為Net的類,它繼承自nn.Module。在PyTorch中,自定義的網(wǎng)絡(luò)模型都應(yīng)該繼承自nn.Module類,這個(gè)基類提供了模型需要的大部分功能,如參數(shù)管理、模型保存與加載等。


          構(gòu)造函數(shù)


                    
                      def __init__(self):    
                    
                    
                      super(Net, self).__init__()
                    
                  


          在Net的構(gòu)造函數(shù)中,首先調(diào)用super(Net, self).__init__()以確保父類nn.Module的構(gòu)造函數(shù)被正確執(zhí)行。這是初始化繼承自其他Python類的自定義類的標(biāo)準(zhǔn)做法。


          定義層結(jié)構(gòu)


                    
                      self.conv1 = nn.Conv2d(1, 6, 5) 
                    
                    
                      self.conv2 = nn.Conv2d(6, 16, 5) 
                    
                    
                      self.fc1 = nn.Linear(16*5*5, 120) 
                    
                    
                      self.fc2 = nn.Linear(120, 84) 
                    
                    
                      self.fc3 = nn.Linear(84, 10)
                    
                  


          self.conv1和self.conv2定義了兩個(gè)卷積層。nn.Conv2d的參數(shù)分別代表輸入通道數(shù)、輸出通道數(shù)和卷積核的尺寸。例如,self.conv1接收單通道圖像,輸出6個(gè)通道的特征映射,使用5x5的卷積核。

          self.fc1, self.fc2, self.fc3定義了三個(gè)全連接層(也稱線性層)。nn.Linear的參數(shù)分別代表輸入特征數(shù)和輸出特征數(shù)。例如,self.fc1接收1655大小的輸入(來(lái)自前一層的輸出),并輸出120個(gè)特征。


          前向傳播


                    
                      
                        def forward(self, x)
                        :
                      
                    
                  

          forward函數(shù)定義了數(shù)據(jù)通過(guò)網(wǎng)絡(luò)的方式。x是輸入數(shù)據(jù)。


          解釋

                    
                      x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) 
                    
                    
                      x = F.max_pool2d(F.relu(self.conv2(x)), 2)x = x.view(x.size()[0], -1) 
                    
                    
                      x = F.relu(self.fc1(x)) 
                    
                    
                      x = F.relu(self.fc2(x)) 
                    
                    
                      x = self.fc3(x)
                    
                  


          在每個(gè)卷積層后,使用ReLU函數(shù)作為激活函數(shù),隨后應(yīng)用最大池化(F.max_pool2d)以減少特征維度和增強(qiáng)模型的泛化能力。池化層的參數(shù)指定了池化窗口的大小。


          x.view(x.size()[0], -1)這行代碼將多維特征圖轉(zhuǎn)換(或稱為扁平化)為一維向量,以便全連接層可以處理。這是從卷積層到全連接層過(guò)渡的常見做法。


          數(shù)據(jù)通過(guò)全連接層序列,其中前兩層使用ReLU激活函數(shù),最后一層的輸出可以用于計(jì)算分類任務(wù)的概率分布(通常在此之后會(huì)加上Softmax層進(jìn)行多分類問(wèn)題的概率輸出)。



          總結(jié):這個(gè)網(wǎng)絡(luò)架構(gòu)是一個(gè)經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),適合處理圖像數(shù)據(jù)。通過(guò)兩個(gè)卷積層提取空間特征,然后通過(guò)全連接層進(jìn)行分類。每一層都有其特定的作用和配置,例如卷積層用于提取圖像特征,全連接層用于將這些特征映射到最終的輸出類別。這種結(jié)構(gòu)的網(wǎng)絡(luò)在圖像識(shí)別、分類任務(wù)中非常有效。






          494969dc27418c36723257c982198330.webp


          聲明:轉(zhuǎn)載或者引用本文內(nèi)容請(qǐng)聯(lián)系本文作者。



            - end -  


          視覺(jué)選型|機(jī)器人選型|手眼標(biāo)定

          圖像處理|視覺(jué)軟件開發(fā)|案例應(yīng)用分享



          瀏覽 41
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费在线观看色黄 | 天天综合网久久综合网 | 精品人妻一区二区三区香蕉 | 中国一区二区精品 | 插穴无码 |