當然可以!PyTorch的全連接神經網絡(也稱為密集層或全連接層)可以通過增加更多的層來擴展。你可以通過在現有網絡的基礎上添加新的全連接層來實現這一點。以下是一個簡單的示例,展示了如何在PyTorch中添加一個全連接層:
import torch
import torch.nn as nn
# 定義一個簡單的全連接神經網絡
class SimpleFC(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(SimpleFC, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
return x
# 創建一個簡單的全連接神經網絡實例
input_size = 784 # 假設輸入是一個 28x28 的圖像
hidden_size = 128
output_size = 10
model = SimpleFC(input_size, hidden_size, output_size)
# 打印模型結構
print(model)
在這個示例中,我們定義了一個名為SimpleFC
的全連接神經網絡類,它包含一個輸入層、一個隱藏層和一個輸出層。你可以通過修改input_size
、hidden_size
和output_size
參數來調整網絡的大小。
如果你想要進一步擴展網絡,可以在SimpleFC
類中添加更多的全連接層。例如:
class ExpandedFC(nn.Module):
def __init__(self, input_size, hidden_size1, hidden_size2, output_size):
super(ExpandedFC, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size1)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size1, hidden_size2)
self.relu2 = nn.ReLU()
self.fc3 = nn.Linear(hidden_size2, output_size)
def forward(self, x):
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
x = self.relu2(x)
x = self.fc3(x)
return x
# 創建一個擴展的全連接神經網絡實例
input_size = 784
hidden_size1 = 256
hidden_size2 = 128
output_size = 10
model = ExpandedFC(input_size, hidden_size1, hidden_size2, output_size)
# 打印模型結構
print(model)
在這個示例中,我們定義了一個名為ExpandedFC
的全連接神經網絡類,它包含兩個隱藏層。你可以通過修改hidden_size1
和hidden_size2
參數來調整隱藏層的大小。