当前位置: 首页 > news >正文

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

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研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.lryc.cn/news/102054.html

相关文章:

  • 笙默考试管理系统-MyExamTest(21)
  • Redis高可用之主从复制、哨兵、cluster集群
  • 【需求响应DR】一种新的需求响应机制DR-VCG研究(Python代码实现)
  • 【Django学习】(十六)session_token认证过程与区别_响应定制
  • ai创作系统CHATGPT支持GPT4.0+支持ai绘画(MJ)+ai绘画(SD)集合几百种AI智能工具
  • linux安装mysql
  • mysql主从复制原理及应用
  • 《Kubernetes故障篇:unable to retrieve OCI runtime error》
  • el-upload上传图片和视频,支持预览和删除
  • clickhouse MPPDB数据库 运维实用SQL总结III
  • ARM和MIPS的区别
  • TypeScript -- 类
  • 【LeetCode】124.二叉树中的最大路径和
  • Linux命令总结
  • SpringBoot临时属性设置
  • 【Python小知识】如何解决代理IP在多线程环境下的并发问题?
  • redis常见面试汇总
  • 子数组的解释与专题
  • PHP: 开发入门macOS系统下的安装和配置
  • 在CentOS下安装docker
  • [JavaWeb]SQL介绍-DQL查询数据
  • [containerd] 在Windows上使用IDEA远程调试containerd, ctr, containerd-shim
  • Verilog语法学习——LV4_移位运算与乘法
  • 打卡力扣题目九
  • Python零基础入门(九)——函数,类和对象
  • 在linux上面部署activemq
  • mysql的sql语句优化方法面试题总结
  • 小程序 获取用户头像、昵称、手机号的组件封装(最新版)
  • 【Linux】简易shell外壳的制作
  • TenserRT(四)在 PYTORCH 中支持更多 ONNX 算子