ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多层感知机(MLP)的从零开始实现

2022-02-10 11:00:30  阅读:185  来源: 互联网

标签:10 函数 矩阵 感知机 MLP 从零开始 图像 类别


 

多层感知机(MLP)的从零开始实现

基于Fashion-MNIST图像分类数据集

一、初始化模型参数

Fashion-MNIST中的每个图像由28*28=784个灰度像素值组成,所有图像共分为10个类别,忽略像素间的空间结构,可以将每个图像视为具有784个输入特征和10个类的简单分类数据集。

首先。我们将实现一个具有单隐藏层的多层感知机。通常,因为内存在硬件中的分配和寻址方式,我们选取2的若干次幂作为层的宽度,使计算更有效。

二、激活函数

实现ReLU激活函数,其他激活函数还有SIGMOD、Tanh等,但一般使用ReLU

三、模型

利用reshape将每个二维图像转换为一个长度为num_inputs的向量。

X = X.reshape((-1,num_inputs))

四、损失函数

在softmax回归中,我们的输出与类别一样多。因为数据集有10个类别,所以输出维度为10,权重将构成784*10的矩阵,偏置构成1*10的矩阵,我们首先对权重矩阵进行正态分布,对偏置矩阵初始化为0。

五、预测类别

给定预测概率分布,然后我们选择每一类预测概率最高的类。当预测类别和标签y一致时,预测正确。为了计算精度,首先,如果y_hat是矩阵,我们将预测的各类别的概率存储在第二维度(行),按照argmax找出行中概率值最大的下标索引作为预测出的类别,将y_hat的数据类型转换成和y一致,利用“==”判断,结果输出0或1的张量。

六、训练

 首先,我们定义一个函数来训练一个迭代周期。

请注意,updater是更新模型参数的常用函数,它接受批量大小作为参数。 它可以是d2l.sgd函数,也可以是框架的内置优化函数。

 

 

 

标签:10,函数,矩阵,感知机,MLP,从零开始,图像,类别
来源: https://www.cnblogs.com/beatuy/p/15878197.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有