我们已经从上一节里了解了多层感知机的原理。下面,我们一起来动手实现一个多层感知机。首先导入实现所需的包或模块。
2.2.1 获取和读取数据
2.2.2 定义模型参数
我们在“softmax回归的从零开始实现”一节里介绍了,Fashion-MNIST数据集中图像形状为28x28,类别数为10。本节中我们依然使用长度为28x28=784的向量表示每一张图像。因此,输入个数为784,输出个数为10。实验中,我们设参数隐藏单元个数为256。
2.2.3 定义激活函数
这里我们使用基础的maximum函数来回实现ReLU,而非直接调用relu函数
2.2.4 定义模型
同softmax回归一样,我们通过reshape函数将每张原始图像改成长度为num_inputs的向量。然后实现上一节中多层感知机的计算表达式。
2.2.5 为了得到更好的数值稳定性,我们直接使用Gluon提供的包括softmax运算和交叉熵损失计算的函数。
2.2.6 训练模型
训练多层感知机的步骤和“softmax回归的从零开始实现”一节中训练softmax回归的步骤没什么区别。我们直接调用d2lzh包含中train_ch3函数,它的实现已经在“softmax回归的从零开始实现”一节里介绍过。我们在这里设产参数迭代周期数为5,学习率为0.5。