温馨提示×

pytorch全连接神经网络能扩展吗

小樊
81
2024-12-26 14:51:50
栏目: 深度学习

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

0