【动手学习深度学习--逐行代码解析合集】06多层感知机的从零开始实现

【动手学习深度学习】逐行代码解析合集

06多层感知机的从零开始实现


视频链接:动手学习深度学习–softmax回归简洁实现
课程主页:https://courses.d2l.ai/zh-v2/
教材:https://zh-v2.d2l.ai/

1、多层感知机

在这里插入图片描述

在这里插入图片描述
2、从线性到非线性

在这里插入图片描述


在这里插入图片描述
3、激活函数

ReLU激活函数

在这里插入图片描述

ReLU激活函数及其导数
ReLU激活函数
在这里插入图片描述

在这里插入图片描述
sigmoid函数

在这里插入图片描述
sigmoid在隐藏层中已经较少使用, 它在大部分时候被更简单、更容易训练的ReLU所取代。

在这里插入图片描述

sigmoid激活函数及其导数
在这里插入图片描述
在这里插入图片描述

tanh函数

在这里插入图片描述
在这里插入图片描述

tanh函数的形状类似于sigmoid函数, 不同的是tanh函数关于坐标系原点中心对称。

tanh激活函数及其导数
在这里插入图片描述
在这里插入图片描述

4、代码

import torch
from torch import nn
from d2l import torch as d2l
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)"====================1、初始化模型参数===================="
# Fashion-MNIST中的每个图像由28*28=784个灰度像素值组成。所有图像共分为10个类别。
# 首先,我们将实现一个具有单隐藏层的多层感知机, 它包含256个隐藏单元。
num_inputs, num_outputs, num_hiddens = 784, 10, 256# normal 和 randn 的区别是normal可以自己设定方差,而randn只是生成
# randn*0.01 等价于 normal(0,0.01)
W1 = nn.Parameter(torch.randn(num_inputs, num_hiddens, requires_grad=True) * 0.01)
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))
W2 = nn.Parameter(torch.randn(num_hiddens, num_outputs, requires_grad=True) * 0.01)
b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))params = [W1, b1, W2, b2]
"====================2、实现ReLU激活函数===================="
def relu(X):# a的数据类型和形状与X都相同,只不过元素值都为0a = torch.zeros_like(X)return torch.max(X, a)"====================3、实现模型===================="
# 因为我们忽略了空间结构, 所以我们使用reshape将每个二维图像转换为一个长度为num_inputs的向量。
def net(X):X = X.reshape((-1, num_inputs))H = relu(X@W1 + b1)  # 这里“@”代表矩阵乘法return (H@W2 + b2)"====================4、损失函数===================="
loss = nn.CrossEntropyLoss(reduction='none')"====================5、训练===================="
# 多层感知机的训练过程与softmax回归的训练过程完全相同
num_epochs, lr = 10, 0.1
updater = torch.optim.SGD(params, lr=lr)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, updater)# 为了对学习到的模型进行评估,我们将在一些测试数据上应用这个模型。
d2l.predict_ch3(net, test_iter)
d2l.plt.show()

5、运行结果

在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7681.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT应用工具推荐

ChatGPT作为一种先进的自然生成技术,已经在各个领域展现出了其强大的应用能力,下面将给大家介绍一些ChatGPT的功能应用。 简介 此系统是基于likeadmin—PHP开发的智能对话系统,ChatGPT是一种基于人工智能技术的聊天机器人,它可以…

亚马逊云科技推出Amazon AppFabric,SaaS安全不断加码

亚马逊云科技近日宣布推出Amazon AppFabric来增强公司在软件即服务(SaaS)应用程序方面的现有投入。Amazon AppFabric是一项无代码服务,可以为客户提高安全性,管理水平和生产力。只需在亚马逊云科技管理控制台上点击几下&#xff0…

机器学习之深度神经网络

目录 卷积神经网络与全连接神经网络 前向后向传播推导 通用手写体识别模型 人脸识别模型 电影评论情感分析模型 卷积神经网络与全连接神经网络 卷积神经网络(Convolutional Neural Network,CNN)和全连接神经网络(Fully Conn…

单片机STM32看门狗详解(嵌入式学习)

单片机STM32看门狗 什么是看门狗为什么需要看门狗?STM32CubeMX配置和应用示例独立看门狗(IWDG)窗口看门狗(WWDG) 注意事项 什么是看门狗 单片机STM32的看门狗(Watchdog)是一种硬件定时器&#…

动态ip与静态ip的概念、区别、应用场景

动态ip与静态ip的区别 前言一、介绍IP地址的概念和作用1.1、IP地址的定义1.2、IP地址的作用 二、动态IP和静态IP的区别2.1、动态IP和静态IP的定义2.2、动态IP和静态IP的特点2.3、动态IP和静态IP的优缺点比较 三、动态IP和静态IP的应用场景3.1. 动态IP的应用场景3.2. 静态IP的应…

SQL死锁

目录 前言: 分析: 死锁产生的原因: sql死锁 模拟: 解决办法: (本质:快速筛选或高效处理、以此减少锁冲突) ①大事务拆成小事务,尽可能缩小事务范围 大事务:将多个操作放在一个事务中执行…

SpringBoot - 在IDEA中经常发现:Could not autowire. No beans of ‘xxx‘ type found的错误

错误描述 在SPRINGBOOT的项目中,使用IDEA时经常会遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示,但是程序的编译和运行都没有问题,这个错误提示并不影响项目的生产。 解决方案

Vue中如何进行状态持久化(LocalStorage、SessionStorage)

Vue中如何进行状态持久化(LocalStorage、SessionStorage)? 在Vue应用中,通常需要将一些状态进行持久化,以便在用户关闭浏览器或刷新页面后,仍能保留之前的状态。常见的持久化方式包括LocalStorage和Sessio…

深入理解 Golang: Channel 管道

Channel 的使用 Channel 声明方法 chInt : make(chan int) // unbuffered channel 非缓冲通道chInt : make(chan int, 0) // unbuffered channel 非缓冲通道chInt : make(chan int, 2) // bufferd channel 缓冲通道 Channel 基本用法 ch <- x // channel 接收数据 xx &l…

(免费分享)springboot,vue扫码点餐

系统前台客户端部署在微信小程序&#xff0c;主要面向的对象为到店点餐用户&#xff0c;我们要为买家提供一套完整的网上购物服务&#xff0c;内容包括扫码点餐、支付下单、凭取餐码取餐等。 系统后台客户端使用H5端&#xff0c;面向对象为在职员工&#xff0c;为员工提供各种…

7/2~7/4学习成果总结

这几天初步的了解了一下Java&#xff0c;然后写了几道题&#xff1a; 下面总结一下学Java的时候遇到的一易错的小问题以及总结&#xff1a; 1. java里面只能在一个源文件里有一个public类&#xff0c;但是入口main那个可以理解为public static是一个整体也就是不属于public&a…

2023 全球数字经济大会人工智能高峰论坛,和鲸科技入选北京市人工智能行业赋能典型案例

7月&#xff0c;由国家发展改革委、工业和信息化部、科技部、国家网信办、商务部、中国科协联合北京市人民政府共同主办“2023全球数字经济大会”在京召开&#xff0c;本届活动主题为“数据驱动发展&#xff0c;智能引领未来”。其中“人工智能高峰论坛”重点围绕通用人工智能大…