如何在PyTorch中定義一個簡單的卷積神經網路?


要定義一個簡單的卷積神經網路(ANN),我們可以使用以下步驟:

步驟

  • 首先,我們匯入重要的庫和包。我們嘗試在PyTorch中實現一個簡單的ANN。在以下所有示例中,所需的Python庫是**torch**。確保您已安裝它。

import torch
import torch.nn as nn
  • 我們的下一步是構建一個簡單的ANN模型。在這裡,我們使用nn包來實現我們的模型。為此,我們定義一個類**MyNetwork**並將**nn.Module**作為引數傳遞。

class MyNetwork(nn.Module):
  • 我們需要在類中建立兩個函式來準備我們的模型。第一個是init(),第二個是**forward()**。在**init()**函式中,我們呼叫**super()**函式並定義不同的層。

  • 我們需要例項化該類才能用於資料集上的訓練。當我們例項化該類時,將執行**forward()**函式。

model = MyNetwork()
  • 列印**model**以檢視不同的層。

print(model)

示例1

在下面的示例中,我們建立了一個簡單的具有四層的人工神經網路,沒有前向函式。

# Import the required libraries
import torch
from torch import nn

# define a simple sequential model
model = nn.Sequential(
   nn.Linear(32, 128),
   nn.ReLU(),
   nn.Linear(128, 10),
   nn.Sigmoid()
)

# print the model
print(model)

輸出

Sequential(
   (0): Linear(in_features=32, out_features=128, bias=True)
   (1): ReLU()
   (2): Linear(in_features=128, out_features=10, bias=True)
   (3): Sigmoid()
)

示例2

下面的Python程式展示了構建簡單神經網路的不同方法。

import torch
import torch.nn as nn
import torch.nn.functional as F
class MyNet(nn.Module):
   def __init__(self):
      super(MyNet, self).__init__()
      self.fc1 = nn.Linear(4, 8)
      self.fc2 = nn.Linear(8, 16)
      self.fc3 = nn.Linear(16, 4)
      self.fc4 = nn.Linear(4,1)
   def forward(self, x):
      x = F.relu(self.fc1(x))
      x = F.relu(self.fc2(x))
      x = F.relu(self.fc3(x))
      return torch.sigmoid(self.fc4(x))

model = MyNet()
print(model)

輸出

MyNet(
   (fc1): Linear(in_features=4, out_features=8, bias=True)
   (fc2): Linear(in_features=8, out_features=16, bias=True)
   (fc3): Linear(in_features=16, out_features=4, bias=True)
   (fc4): Linear(in_features=4, out_features=1, bias=True)
)

更新於:2022年1月25日

467 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告