当然可以!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
参数来调整隐藏层的大小。