因为最近机器学习的课上使用的都是paddle来进行作业,因此我介绍一下如何根据已知的结果在  padlle中构建模型。 

比如说这个图怎么设计网络模型呢?

首先我们看到有一个输入层1*32*32,接下来是一个卷积层输入为6,加一个池化层,随后优势一个卷积输入为16,加一个池化层,最后是三个全连接层。另外在卷积和连接层后要加一个激活函数,这边比较推荐用relu因为比较稳定有效。
 

根据输入图片的还要对具体参数进行调试。

class LeNet(paddle.nn.Layer):
    def __init__(self):
        super(LeNet, self).__init__()
        self.conv1 = Conv2D(in_channels=1, out_channels=6, kernel_size=5)
        self.max_pool1 = MaxPool2D(kernel_size=2, stride=2)
        self.conv2 = Conv2D(in_channels=6, out_channels=16, kernel_size=5)
        self.max_pool2 = MaxPool2D(kernel_size=2, stride=2)
        self.fc1 = Linear(in_features=400, out_features=120)
        self.fc2 = Linear(in_features=120, out_features=84)
        self.fc3 = Linear(in_features=84, out_features=10)

    def forward(self, x):
        x = self.conv1(x)
        x = F.relu(x)
        x = self.max_pool1(x)
        x = self.conv2(x)
        x = F.relu(x)
        x = self.max_pool2(x)
        x = paddle.reshape(x, [x.shape[0], -1])
        x = self.fc1(x)
        x = F.relu(x)
        x = self.fc2(x)
        x = F.relu(x)
        x = self.fc3(x)
        return x 

更多推荐

paddle-如何设计模型并构建