多层感知机从零开始实现

【代码】

# 导包
from utils import load_data_fashion_mnist, train_ch3
from mxnet import nd
from mxnet.gluon import loss as gloss

1. 获取和读取数据

使⽤Fashion-MNIST数据集,采用多层感知机对图像进⾏分类。

batch_size = 256
train_iter, test_iter = load_data_fashion_mnist(batch_size)

2. 定义模型参数

Fashion-MNIST数据集中图像形状为28 × 28,类别数为10。本节中我们依然使⽤⻓度为28 × 28 = 784的向量表⽰每⼀张图像。因此,输⼊个数为784,输出个数为10。实验中,我们设超参数隐藏单元个数为256。

num_inputs, num_outputs, num_hiddens = 784, 10, 256
W1 = nd.random.normal(scale=0.01, shape=(num_inputs, num_hiddens))
b1 = nd.zeros(num_hiddens)
W2 = nd.random.normal(scale=0.01, shape=(num_hiddens, num_outputs))
b2 = nd.zeros(num_outputs)
params = [W1, b1, W2, b2]
for param in params:param.attach_grad()

3. 定义激活函数

使⽤基础的maximum函数来实现ReLU,而⾮直接调⽤relu函数。

def relu(X):return nd.maximum(X, 0)

4. 定义模型

通过reshape函数将每张原始图像改成⻓度为num_inputs的向量。

def net(X):X = X.reshape((-1, num_inputs))H = relu(nd.dot(X, W1) + b1)return nd.dot(H, W2) + b2

5. 定义损失函数

为了得到更好的数值稳定性,我们直接使⽤Gluon提供的包括softmax运算和交叉熵损失计算的函数。

loss = gloss.SoftmaxCrossEntropyLoss()

6. 训练模型

设超参数迭代周期数为5,学习率为0.5。

num_epochs, lr = 5, 0.5
train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, params, lr)
epoch 1, loss 0.8036, train acc 0.700, test acc 0.833
epoch 2, loss 0.4897, train acc 0.819, test acc 0.846
epoch 3, loss 0.4285, train acc 0.841, test acc 0.852
epoch 4, loss 0.3948, train acc 0.854, test acc 0.865
epoch 5, loss 0.3716, train acc 0.862, test acc 0.861

多层感知机从零开始实现相关推荐

  1. 从零开始学Pytorch(三)之多层感知机的实现

    多层感知机的基本知识 我们将以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经网络的概念. 隐藏层 下图展示了一个多层感知机的神经网络图,它含有一个隐藏层,该层中有5 ...

  2. 深度学习softmax与多层感知机分类模型

    softmax 简单的分类问题 一个简单的图像分类问题,输入图像的高和宽均为2像素,色彩为灰度.图像中的4像素分别记为x1,x2,x3,x4x_1,x_2,x_3,x_4x1​,x2​,x3​,x4​ ...

  3. 《动手实现深度学习》笔记(三)多层感知机

    四. 多层感知机 4.1 简介及实现 4.1.1 简介   1. [线性模型可能出错] 仿射变换中的线性是一个很强的假设,但实际上线性模型是可能会出错的,线性意味着单调,任何特征的增大都会导致模型输出 ...

  4. 多层感知机和神经网络的区别_1.3 多层感知机

    1.3 多层感知机 多层感知机 多层感知机的基本知识 使用多层感知机图像分类的从零开始的实现 使用pytorch的简洁实现 含有隐藏层的神经网络,如果将两个式子联立起来,其实是等价于单层神经网络的. ...

  5. 动手学习深度学习 04:多层感知机

    文章目录 01 多层感知机 1.感知机 总结 2.多层感知机 2.1.隐藏层 2.1.1 线性模型可能会出错 2.1.2 在网络中加入隐藏层 2.1.3 从线性到非线性 2.1.4 通用近似定理 3. ...

  6. 深度学习笔记其三:多层感知机和PYTORCH

    深度学习笔记其三:多层感知机和PYTORCH 1. 多层感知机 1.1 隐藏层 1.1.1 线性模型可能会出错 1.1.2 在网络中加入隐藏层 1.1.3 从线性到非线性 1.1.4 通用近似定理 1 ...

  7. 多层感知机总结-PyTorch

    动手学深度学习-多重感知机笔记 多层感知机 多层感知机的从零开始实现 多层感知机的简洁实现 范数与权重衰减(weight decay) 暂退法(Dropout) 前向传播和反向传播 梯度消失和梯度爆炸 ...

  8. 深度学习基础——多层感知机

    多层感知机(Multilayer Perceptron, MLP)是最简单的深度网络.本文回顾多层感知机的相关内容及一些基本概念术语. 多层感知机 为什么需要多层感知机 多层感知机是对线性回归的拓展和 ...

  9. 【动手学深度学习】多层感知机(MLP)

    1 多层感知机的从零开始实现 torch.nn 继续使用Fashion-MNIST图像分类数据集 导入需要的包 import torch from torch import nn from d2l i ...

  10. 动手学深度学习之多层感知机

    多层感知机 多层感知机的基本知识 深度学习主要关注多层模型.本节将以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经网络的概念. 隐藏层 下图展示了一个多层感知机的神 ...

最新文章

  1. python numpy数组和one-hot编码相互转换
  2. pm961 mysql_Oracle GoldenGate学习之--异构平台同步(Mysql到Oracle)
  3. 解决sourceTree的git clone 报SSH密钥认证失败的问题
  4. CGVAE -> Delinker -> DeepCoy
  5. MATLAB xlswrite 写数据 到 Excel文件
  6. 前端面试知识点归纳:vue,react,webpack,bable,项目开发
  7. delphi 多个checkbox只能勾选一个_CAD加选无效?不可连续选择多个对象?按下这个键就正常了...
  8. 修改表和约束(alter语句)
  9. 操作系统课后答案第三章
  10. MagicDraw-包图
  11. [学习笔记]opencv双线性插值法图像放大
  12. 用C#一步步写串口通信
  13. AI识别照片是谁,人脸识别face_recognition开源项目安装使用 | 机器学习
  14. 基于Springboot外卖系统13:实现文件上传下载模块
  15. matlab 死区,matlab中怎么产生死区
  16. java aud 转mp3_音频格式转换:微信语音aud格式转成wav格式
  17. 【MYSQL用户创建报错】ERROR 1396 (HY000): Operation CREATE USER failed for ‘user1‘@‘%‘
  18. 苹果mac休眠快捷键_史上最详细的苹果Macbook快捷键使用
  19. 二级路由dhcp关闭连不上wifi_无线宽带路由器除了WiFi上网还能有什么用,如何正确设置DHCP服务...
  20. 用注册机给keil4 注册 ERROR R206: NO REGISTRY ACCESS, ADMINISTRATION RIGHTS REQUIRED

热门文章

  1. arcgis中editor在哪_leetcode 刷题工具 leetcode-editor 本地调试篇
  2. java中a 和 a_Java中的a++和++a的区别 | 学步园
  3. 使用XMLHTTP Request Object获取服务器数据
  4. Forrester告诫CIO们:谨慎应用区块链网络
  5. Java SVN管理工具的使用
  6. NETDOM的几个用法
  7. [c++] polymorphism without virtual function
  8. 网页后门危害大 网站安全狗帮助查杀
  9. 使用php glob函数查找文件,遍历文件目录(转)
  10. Top Down Operator Precedence - 自顶向下算符优先分析法