机器学习深度学习——多层感知机的简洁实现

news2024/11/15 11:01:18

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er
🌌上期文章:机器学习&&深度学习——多层感知机的从零开始实现
📚订阅专栏:机器学习&&深度学习
希望文章对你们有所帮助

之前的数学推导或者思维构建的过程是很慢的,而今天的进度却很快。这是今天的第五篇文章了,说明基础和思想慢慢掌握一点以后,直接开始起飞了,大家一起加油。

多层感知机的简洁实现

  • 模型
  • 训练

其实就是通过高级API来实现:

import torch
from torch import nn
from d2l import torch as d2l

模型

与之前的softmax回归相比,唯一区别就是我们添加了2个全连接层,之前只有1个。第一层是隐藏层,包含了256个隐藏单元,且使用了ReLU函数;第二层是输出层:

net = nn.Sequential(nn.Flatten(),
                    nn.Linear(784, 256),
                    nn.ReLU(),
                    nn.Linear(256, 10))

def init_weights(m):
    if type(m) == nn.Linear:
        nn.init.normal_(m.weight, std=0.01)

net.apply(init_weights)

其中,nn.Sequential的操作表明,先进行Flatten进行展平,再将784放到隐藏层变为256个单元(使用的全连接的方式),隐藏层这时候要执行nn.ReLU(),接着再放到全连接到输出层,输出10个。

训练

训练过程的实现与我们实现softmax回归时完全相同, 这种模块化设计使我们能够将与模型架构有关的内容独立出来。

batch_size, lr, num_epochs = 256, 0.1, 10
loss = nn.CrossEntropyLoss(reduction='none')
trainer = torch.optim.SGD(net.parameters(), lr=lr)

train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)
d2l.plt.show()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

东南大学轴承故障诊断(Python代码,CNN模型,适合复合故障诊断研究)

运行代码要求: 代码运行环境要求:Keras版本>2.4.0,python版本>3.6.0 本次实验主要是在两种不同工况数据下,进行带有复合故障的诊断实验,没有复合故障的诊断实验。 实验结果证明,针对具有复合故障的…

Linux系统MySQL数据库的备份及应用

本节主要学习了MySQL数据库的备份:概念,数据备份的重要性,造成数据丢失的原因,备份的类型,常见的备份方法,实例与应用等。 目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 …

AMEYA360:ROHM罗姆授权代理有哪些?

罗姆(ROHM)株式会社是全球知名的半导体厂商之一,总部所在地设在日本京都市,1958年作为小电子零部件生产商在京都起家的罗姆,于1967年和1969年逐步进入了晶体管、二极管领域和IC等半导体领域。2年后的1971年,罗姆作为第一家进入美国…

K8S故障排查

故障现象:部署pod时,报错没发调度到节点。 排查步骤: 1、查看集群的状态 [rootk8s-master1 nginx]#kubectl get nodes2、查看k8s组件的状态-kubelet,kube-apiservice 3、查看docker的Cgroup driver和k8s的Cgroup driver类型&…

list源码分析,基于c++ 和vs2019,cpp20标准

list源码分析,基于c 和vs2019,cpp20标准。结构确实如图,双向环形链表。

Qt C++实现Excel表格的公式计算

用Qt的QTableViewQStandardItemModelQStyledItemDelegate实现类似Excel表格的界面,在parser 模块中提供解析表格单元格输入的公式。单元格编辑结束后按回车进行计算和更新显示。 效果如下: 支持的公式计算可以深度嵌套,目前parser模块中仅提…

【C语言day08】

int n5; int a[n][n2] 数组定义下角标不能为变量 注:C99标准中支持了使用变量本题考查的是二维数组的元素访问,A选项是 正确的,X[i]就是第i行的数组名,数组名表示首元素的地址,X[i]表示第i行的第一个元素的地址&#…

【开源项目】智慧高铁站~经典开源项目数字孪生智慧高铁站——开源工程及源码

广州南站工程和源码免费赠送,人人都可探索其魅力! 项目介绍 广州南站,中国最大的综合交通枢纽之一,处于广州市珠江新城中轴线上,是广州南沙新区的门户之一。利用数字孪生技术,通过3Dmaxs技术实现数据和场景…

MySQL基础扎实——MySQL中各种数据类型之间的区别

在MySQL中,有各种不同的数据类型可供选择来存储不同类型的数据。下面是一些常见的数据类型以及它们之间的区别: 整数类型: TINYINT:1字节,范围为-128到127或0到255(无符号)。SMALLINT&#xff1…

Hadoop的伪分布式安装方法

实验环境: 操作系统:Linux (Ubuntu 20.04.5) Hadoop版本:3.3.2 JDK版本:1.8.0_162 (1)创建 hadoop 用户(使用 /bin/bash 作为 Shell)、设置密码(建议简单&#xff09…

YOLO算法改进指南【中阶改进篇】:9.添加S2-MLPv2注意力机制

一、理论知识 S2MLPv2 依是百度提出的用于视觉的空间位移 MLP 架构,其作者以及顺序与 S2MLP 一模一样,其论文为 S2-MLPv2: Improved Spatial-Shift MLP Architecture for Vision。S2MLPv2 的修改点主要在于三处:金字塔结构(参考 ViP)、分三类情况进行考虑(参考 ViP)、使…

注解和反射02--Java反射

反射 动态和静态语言获取反射对象Java反射机制提供的功能Java反射优缺点反射相关的主要API 动态和静态语言 要学习反射,首先我们需要了解一下静态和动态语言。 动态语言:是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可…

【C++11】——auto关键字、范围for与指针控制nullptr

目录 1.auto关键字 1.1 auto简介 1.2 auto使用规则 1.3 auto不能推导的场景 1.4 auto的实际应用价值 2. 范围for 2.1 范围for的语法 2.2 范围for的使用条件 3. 指针空值nullptr 1.auto关键字 1.1 auto简介 在早期C/C中auto的含义是:使用auto修饰的变量&a…

npm封装插件简记

以下是可能出现的报错信息: 按需引入第三方库:

YOLOv5改进:CVPR 2023 | SCConv: 即插即用的空间和通道重建卷积

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 2.涨点效果:添加 SCConv,经过测试,有效涨点。…

u盘里的数据丢失怎么恢复 u盘数据丢失怎么恢复

在使用U盘的时候不知道大家有没有经历过数据丢失或者U盘提示格式化的情况呢?U盘使用久了就会遇到各种各样的问题,而关于U盘数据丢失,大家又知道多少呢?当数据丢失了,我们应该怎样恢复数据?这个问题困扰了很…

Istio网关Gateway 启用TLS

Istio网关Gateway概述 Istio网关Gateway是一个负责处理南北向流量的组件,它通常会暴露服务网格内部的服务,以便外部的请求能够访问到服务网格中的服务。Istio网关Gateway支持多种协议,包括HTTP、HTTPS和GRPC等。 在Istio网关Gateway中&#…

malloc(1) 会分配多大的虚拟内存?

malloc() 分配的是虚拟内存。 如果分配后的虚拟内存没有被访问的话,虚拟内存是不会映射到物理内存的,这样就不会占用物理内存了。 只有在访问已分配的虚拟地址空间的时候,操作系统通过查找页表,发现虚拟内存对应的页没有在物理内…

MySQL的变量、流程控制与游标

目录 1.变量的分类 1.系统变量的分类 1.1.二者关系 2.查看系统变量 3.修改系统变量的值 4.用户变量 4.1会话用户变量 1.变量声明与赋值 2.变量使用 4.2.局部变量 1.使用declare 声明 2.局部变量声明格式 3.局部变量赋值 4.变量使用 5.定义条件与处…

【Datawhale夏令营】任务二学习笔记

目录 一:python语法回顾 1.1 print() 1.2 列表与字典 1.3自定义函数与return 1.4火车类(面向对象) 实例化总结: 二:LightGBM 代码精读 2.1导入库 2.2数据准备与参数设置 2.3时间特征函数 2.4优化 2.5训练与…