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