在PyTorch中,构建全连接神经网络(也称为密集层或线性层)非常简单。以下是一个简单的示例,展示了如何构建一个具有单个全连接层的网络:
import torch
import torch.nn as nn
# 定义一个简单的全连接神经网络
class FullyConnectedNetwork(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(FullyConnectedNetwork, self).__init__()
# 创建一个全连接层,输入大小为 input_size,输出大小为 hidden_size
self.fc1 = nn.Linear(input_size, hidden_size)
# 创建另一个全连接层,输入大小为 hidden_size,输出大小为 output_size
self.fc2 = nn.Linear(hidden_size, output_size)
# 可选:添加激活函数,例如 ReLU
self.relu = nn.ReLU()
def forward(self, x):
# 通过第一个全连接层
x = self.fc1(x)
# 可选:应用激活函数
x = self.relu(x)
# 通过第二个全连接层
x = self.fc2(x)
return x
# 参数设置
input_size = 784 # 例如,MNIST数据集的图像大小为28x28
hidden_size = 128
output_size = 10 # 例如,MNIST数据集有10个类别
# 创建网络实例
network = FullyConnectedNetwork(input_size, hidden_size, output_size)
# 打印网络结构
print(network)
在这个示例中,我们定义了一个名为FullyConnectedNetwork
的类,它继承自nn.Module
。我们在__init__
方法中定义了两个全连接层(fc1
和fc2
),并在forward
方法中定义了数据通过网络的方向。
你可以根据需要调整网络结构,例如添加更多的全连接层、使用不同的激活函数等。