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

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样, 继续使用Fashion-MNIST数据集,并保持批量大小为256。

import torch
from torch import nn  # 通过pytorch的nn的module
from d2l import torch as d2lbatch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)

初始化模型参数

softmax回归的输出层是一个全连接层。 因此,为了实现我们的模型, 我们只需在Sequential中添加一个带有10个输出的全连接层。 同样,在这里Sequential并不是必要的, 但它是实现深度模型的基础。 我们仍然以均值0和标准差0.01随机初始化权重。

# PyTorch不会隐式地调整输入的形状。因此,
# 我们在线性层前定义了展平层(flatten),来调整网络输入的形状
net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10)) # 这里使用了PyTorch中的nn.Sequential来构建一个顺序容器,将层按顺序添加到网络中
# nn.Flatten():这一层的作用是将输入的数据展平成一维。假设输入的数据是一个28x28的二维图像,展平后将变成一个784(28*28)长度的一维向量。
# nn.Linear(784, 10):这是一个全连接层(线性层),输入大小为784(展平后的图像向量),输出大小为10(假设有10个类别)。def init_weights(m):  # 这里定义了一个函数init_weights,用于初始化网络中的权重。if type(m) == nn.Linear: # 这行代码检查传入的层是否为nn.Linear类型,即全连接层。nn.init.normal_(m.weight, std=0.01) # 如果该层是全连接层,则使用nn.init.normal_方法将该层的权重初始化为均值为0,标准差为0.01的正态分布随机值。net.apply(init_weights);  # net.apply方法会遍历网络中的每一层,并将init_weights函数应用到每一层上,完成权重的初始化。

在交叉熵损失函数中传递未归一化的预测,并同时softmax及其对数

loss = nn.CrossEntropyLoss(reduction='none')

在这里,我们使用学习率为0.1的小批量随机梯度下降作为优化算法。 这与我们在线性回归例子中的相同,这说明了优化器的普适性。

trainer = torch.optim.SGD(net.parameters(), lr=0.1)

训练

接下来我们调用之前定义的训练函数来训练模型。

num_epochs = 10
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

在这里插入图片描述


相关文章:

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样, 继续使用Fashion-MNIST数据集,并保持批量大小为256。 import torch from torc…...

我 17 岁创业,今年 20 岁,月入 70 万,全靠低代码

想象一下,当你还在高中的课桌前埋头苦读时,有人告诉你三年后你将成为一家年收入超过 100 万美元的科技公司的创始人。 听起来是不是像天方夜谭? 但对于 20 岁的小伙子 Jacob Klug 来说,这就是他的真实人生。 在大多数同龄人还在为…...

【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden 一、分析问题背景 在使用Python的urllib库中的urlopen或urlretrieve函数下载文件时,有时会遇到…...

昇思12天

FCN图像语义分割 1. 主题和背景 FCN是由UC Berkeley的Jonathan Long等人于2015年提出的,用于实现图像的像素级预测。 2. 语义分割的定义和重要性 语义分割是图像处理和机器视觉中的关键技术,旨在对图像中的每个像素进行分类。它在很多领域有重要应用…...

【postgresql】 基础知识学习

PostgreSQL是一个高度可扩展的开源对象关系型数据库管理系统(ORDBMS),它以其强大的功能、灵活性和可靠性而闻名。 官网地址:https://www.postgresql.org/ 中文社区:文档目录/Document Index: 世界上功能最强大的开源…...

按键控制LED流水灯模式定时器时钟

目录 1.定时器 2. STC89C52定时器资源 3.定时器框图 4. 定时器工作模式 5.中断系统 1)介绍 2)流程图:​编辑 3)STC89C52中断资源 4)定时器和中断系统 5)定时器的相关寄存器 6.按键控制LED流水灯模…...

【Docker安装】OpenEuler系统下部署Docker环境

【Docker安装】OpenEuler系统下部署Docker环境 前言一、本次实践介绍1.1 本次实践规划1.2 本次实践简介二、检查本地环境2.1 检查操作系统版本2.2 检查内核版本2.3 检查yum仓库三、卸载Docker四、部署Docker环境4.1 配置yum仓库4.2 检查可用yum仓库4.3 安装Docker4.4 检查Docke…...

小程序 使用 UI 组件 Vant Weapp 、vant组件样式覆盖

注意:使用vant 包,需要把app.json 中 的"style:v2" 这句去掉 不然会出现样式混乱的问题 Vant Weapp组件库的使用 参考官网 vant官网 Vant Weapp 组件样式覆盖 Vant Weapp 基于微信小程序的机制,为开发者提供了 3 种修改组件样式…...

(接上一篇)前端弄一个变量实现点击次数在前端页面实时更新

实现点击次数在前端页面实时更新,确实需要在前端维护一个变量来存储当前的点击次数。这个变量通常在Vue组件的data选项中定义,并在组件的生命周期方法或事件处理函数中更新。 以下是实现这一功能的基本步骤: 定义变量:在Vue组件的…...

迭代器模式在金融业务中的应用及其框架实现

引言 迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。在金融业务中,迭代器模式可以用于遍历复杂的数据结构,如交易…...

浏览器插件利器-allWebPluginV2.0.0.14-stable版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…...

机器学习训练之使用静态图加速

前言 MindSpore有两种运行模式:动态图模式和静态图模式。默认情况下是动态图模式,也可以手工切换为静态图模式。 动态图模式 动态图的特点是计算图的构建和计算同时发生,符合Python的解释执行方式。在调试模型时较为方便,能够实…...

数据结构速成--图

由于是速成专题,因此内容不会十分全面,只会涵盖考试重点,各学校课程要求不同 ,大家可以按照考纲复习,不全面的内容,可以看一下小编主页数据结构初阶的内容,找到对应专题详细学习一下。 目录 …...

昇思25天学习打卡营第12天|FCN图像语义分割

文章目录 昇思MindSpore应用实践基于MindSpore的FCN图像语义分割1、FCN 图像分割简介2、构建 FCN 模型3、数据预处理4、模型训练自定义评价指标 Metrics 5、模型推理结果 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 基于MindSpo…...

昇思MindSpore学习笔记4-03生成式--Diffusion扩散模型

摘要: 记录昇思MindSpore AI框架使用DDPM模型给图像数据正向逐步添加噪声,反向逐步去除噪声的工作原理和实际使用方法、步骤。 一、概念 1. 扩散模型Diffusion Models DDPM(denoising diffusion probabilistic model) (无)条件…...

Go:hello world

开启转职->Go开发工程师 下面是我的第一个go的程序 在上面的程序介绍: 1、package main 第一行代码package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程…...

JVM专题之内存模型以及如何判定对象已死问题

体验与验证 2.4.5.1 使用visualvm **visualgc插件下载链接 :https://visualvm.github.io/pluginscenters.html https://visualvm.github.io/pluginscenters.html **选择对应JDK版本链接--->Tools--->Visual GC** 2.4.5.2 堆内存溢出 * **代码** java @RestCont…...

vscode使用Git的常用操作

主打一个实用 查看此篇之前请先保证电脑安装了Git,安装教程很多,可自行搜索 一.初始化本地仓库🔴 使用vscode打开项目文件夹如图所使初始化仓库,相当于命令行的git init 二.提交到暂存区🔴 二.提交到新版本&#x1f…...

RPC与REST

RPC与REST 访问远程服务1远程服务调用(Remote Procedure Call,RPC):RPC 解决什么问题?如何解决的?为什么要那样解决?1.1 先解决两个进程间如何交换数据的问题,也就是进程间通信&…...

计数排序的实现

原理 对一个数组进行遍历,再创建一个count数组 每找到一个值则在count数组中对应的位置加一,再在count数组中找到数字上方的count值,count值为几,则打印几次数组中的值. 开空间 相对映射 排序的实现 void CountSort(int* a, i…...

OpenClaw+千问3.5-27B学习助手:自动整理笔记与生成思维导图

OpenClaw千问3.5-27B学习助手:自动整理笔记与生成思维导图 1. 为什么需要AI学习助手? 去年准备技术认证考试时,我发现自己陷入了"资料沼泽"——收集了87个PDF、42小时视频课程和无数网页书签,但真正消化吸收的内容不到…...

别再只调参了!用决策树可视化你的Fashion MNIST分类过程,看看模型到底在‘看’哪里

决策树可视化:用Fashion MNIST解码模型注意力机制 1. 当深度学习遇到可解释性困境 在图像分类任务中,我们常常陷入一个矛盾:CNN等复杂模型虽然准确率高,但其决策过程如同黑箱。当模型表现不佳时,我们往往只能盲目调整超…...

探索混合动力汽车Simulink整车模型:并联P2构型与基于规则的控制策略

混合动力汽车simulink整车模型,并联P2构型 基于规则的控制策略,可以直接进行CTC,WTLC,NEDC等工况仿真。嘿,各位技术爱好者!今天咱来聊聊混合动力汽车Simulink整车模型,特别是并联P2构型以及基于…...

MySQL的HAVING:掌握分组过滤的高级用法(实战详解)

本文全面讲解MySQL的HAVING用法,从基础语法到高级技巧,包括分组过滤、聚合查询优化与实战应用。 文章目录一、什么是MySQL的HAVINGHAVING的定义与作用HAVING与WHERE的本质区别二、HAVING的基本语法详解标准语法结构执行顺序解析三、MySQL的HAVING与GROUP…...

单相级联H桥(CHB)多电平变换器并网仿真,网侧电压220V PR电压外环 ,PI电流内环,有...

单相级联H桥(CHB)多电平变换器并网仿真,网侧电压220V PR电压外环 ,PI电流内环,有独立的电容电压平衡控制,使用三个全桥子模块,可输出7电平,可供参考学习单相级联H桥多电平变换器这…...

Ansible Playbook实战指南:从基础到高级技巧全解析

1. Ansible Playbook基础入门 第一次接触Ansible Playbook时,我被它简洁的YAML语法和强大的自动化能力惊艳到了。记得当时需要给50台服务器部署Nginx,传统方式要手动操作每台机器,而用Playbook只花了10分钟就搞定了全部部署。这种效率提升让我…...

OpenClaw × 88API:10 分钟搭好本地网关,解决 API 超时和多渠道切换(2026 完整教程)

你可能也踩过这些坑:项目快提测了,Claude API 突然超时,重试半天还是报错想临时换一个中转站兜底,结果又要改一遍 base_url、api_key、模型名一个渠道支持 Claude,不支持 Gemini;另一个支持 GPT&#xff0c…...

警惕!AI生成的科研插图,为啥不能直接用于期刊发表?

做科研的小伙伴们,大概率都有过这样的经历:为了节省绘图时间,用AI快速生成了科研插图,画面清晰、逻辑贴合,本以为能直接用于论文投稿,却被期刊编辑退回,理由清一色——AI生成图不符合发表规范。…...

手把手教你用ESP32-S3开发智能语音设备:麦克风选型+WAV录音全流程

ESP32-S3智能语音设备开发实战:从麦克风选型到WAV录音全流程解析 1. 智能语音设备开发的核心挑战与ESP32-S3解决方案 在智能家居和物联网设备爆发式增长的今天,语音交互已成为人机交互的重要方式。然而,开发一款高性能的智能语音设备并非易…...

终极解析器构建指南:Ohm从CSV解析到自定义语法实战

终极解析器构建指南:Ohm从CSV解析到自定义语法实战 【免费下载链接】ohm A library and language for building parsers, interpreters, compilers, etc. 项目地址: https://gitcode.com/gh_mirrors/oh/ohm Ohm是一个强大的解析器构建库和领域特定语言&#…...