因为最近机器学习的课上使用的都是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