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