【动手学习深度学习--逐行代码解析合集】05softmax回归简洁实现

news2024/9/25 17:14:37

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

05softmax回归简洁实现


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

代码

net.apply()若不懂可参考:

https://blog.csdn.net/qq_37025073/article/details/106739513

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、初始化模型参数===================="
# PyTorch不会隐式地调整输入的形状。因此,
# 我们在线性层前定义了展平层(flatten),来调整网络输入的形状
net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10))

# net.apply若不懂可参考 https://blog.csdn.net/qq_37025073/article/details/106739513
def init_weights(m):
    if type(m) == nn.Linear:
        # m.weight默认为0,以均值为0方差为0.01来随机初始化权重
        nn.init.normal_(m.weight, std=0.01)
        # print(m.weight)
# net.apply(init_weights)会递归地将函数init_weights应用到父模块的每个子模块submodule,也包括model这个父模块自身。
net.apply(init_weights)

"====================2、重新审视Softmax的实现===================="
# reduction 参数用于控制输出损失的形式
# 当 reduction='none' 时,函数会输出一个形状为 (batch_size, num_classes) 的矩阵,表示每个样本的每个类别的损失。
# 当 reduction='sum' 时,函数会对矩阵求和,输出一个标量,表示所有样本的损失之和。
# 当 reduction='elementwise_mean' 时,函数会对矩阵求平均,输出一个标量,表示所有样本的平均损失。
loss = nn.CrossEntropyLoss(reduction='none')

"====================3、优化算法===================="
# torch.optim.SGD:随机梯度下降算法
# net.parameters():即传入要训练的参数
trainer = torch.optim.SGD(net.parameters(), lr=0.1)

"====================4、训练===================="
num_epochs = 10
# 调用之前定义的  训练函数  来训练模型
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)
d2l.plt.show()

运行结果

在这里插入图片描述

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

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

相关文章

第八章CAS策略

文章目录 JDK提供的原子类没有CAS之前引入CAS之后 CAS是什么CAS原理代码演示如何保证的原子性硬件级别保证 源码分析CAS底层原理?如果知道,谈谈你对UnSafe的理解例子atomicInteger.getAndIncrement()为什么安全 自定义原子引用CAS与自旋锁实现自旋锁 CAS…

SD卡可以数据恢复吗 SD卡数据恢复软件

随着数码设备的普及和存储容量的不断增加,SD卡已经成为我们常用的存储介质之一。在使用过程中,不可避免地会遇到SD卡数据丢失的情况,可能是因为误操作、格式化、病毒感染或物理损坏等。幸运的是,现在有许多专业的SD卡数据恢复软件…

Guava RateLimiter:原理、源码和思想

Guava RateLimiter:原理、源码和思想 三种限流算法计数器法漏桶算法令牌桶算法 RateLimiterRateLimiter的使用RateLimiter原理RateLimiter获取令牌获取令牌的基本流程获取令牌的详细源码解读 RateLimiter的两种限流器试验:感受两种限流器的区别SmoothBur…

Mysql 事务优化

事务的ACID特性: 原子性(Atomicity):当前事务的操作要么同时成功,要么同时失败。原子性由undo log日志来保证 一致性(Consistency):使用事务的最终目的,由业务代码正确逻辑保证 隔离性(lsolation):在事务并发执行时,他们内部的操作不能互相…

Ai 制作简单的iconfont字体图标

打开网址https://www.iconfont.cn/icons/upload?spma313x.7781069.1998910419.d059fa781 下载矢量图标设计模板,如图 打开下载的图标制作模版.ai文件 点击椭圆工具画一个大小为900*900的圆 点击文字工具,输入文字内容并调整为合适的大小,例610px …

欧科云链OKLink:2023年6月安全事件盘点

一、基本信息 2023年6月REKT和RugPull事件约造成约1000万美元损失,相比上月有显著下降,但安全事件发生数量依旧不减。其中被废弃的Atlantis Loans遭受治理攻击,造成的损失超250万美元,对该协议有过授权的用户需及时撤销授权。另外…

GRU、LSTM、注意力机制(第八次组会)

GRU、LSTM、注意力机制(第八次组会) 一、 GRU二、 LSTM三、 深度RNN、双向RNN四、 注意力机制一、 GRU 二、 LSTM 三、 深度RNN、双向RNN

机器学习实验-决策树、朴素贝叶斯、KNN模型的应用

实验 决策树-西瓜数据集基于基尼系数剪枝人体运动状态预测数据集西瓜数据集人体特征数据集 机器学习 数据集有两个,一个是西瓜数据集,另一个是人体特征数据集 决策树-西瓜数据集 基于信息熵准则进行划分选择的决策树算法的实现过程(不使用现有的机器学习…

有必要使用性能测试工具吗?

有必要使用性能测试工具吗?性能测试工具是一种帮助开发人员和测试人员评估应用程序、网站或系统性能的软件。这些工具主要用于测量响应时间、吞吐量、并发用户数、资源利用率等指标,以及发现系统瓶颈和瓶颈原因,那其作用意义有哪些&#xff1…

Flutter Linux desktop桌面版Build App流程

Flutter Linux desktop桌面版Build App流程 Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者…

maven-mvnd 的使用

maven-mvnd是Apache Maven团队借鉴了Gradle和Takari的优点,衍生出来的更快的构建工具,是maven的强化版。 github地址:https://github.com/apache/maven-mvnd maven-mvnd 特性: 嵌入 Maven (所以不需要单独安装 Maven)&#xff…

【kubernetes系列】kubernetes之initcontainer初始化容器

概述 Init Container就是用来做初始化工作的容器,可以是一个或者多个,如果有多个的话,这些容器会按定义的顺序依次执行,只有所有的Init Container执行完后,主容器才会被启动。我们知道一个Pod里面的所有容器是共享数据…

日本PSE认证341种B类产品为非特定电器和材料类清单

以上清单为官方网站直译,可能存在差异,具体以官方为准。

为什么普通人升级电脑的意愿消逝了

简洁版答案:需求消逝了。 市场调研机构Canalys数据显示,今年一季度,中国市场整体PC出货量同比下降24%至890万台,已是连续第五个季度下跌。今年截至618结束,都没有一家主要的PC厂商愿意发战报。PC市场怎样走出寒冬&…

微服务系列文章之 seata 事务模式

XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准。 XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。 两阶段提交 XA是规范&…

若依新建模块后,swagger扫描不到新模块中的controller接口

框架默认情况下,只能扫描ruoyi-admin模块下的controller接口。如果需要扫描其它子模块中的swagger注解,那么需要调整一下swagger相关内容。 目录 1、前置条件 2、解决办法 1、前置条件 首先,我们要知道,默认情况下swagger依赖包是放置在项目根pom.xml文件中的。 swagge…

Redis三大集群模式

Redis 支持三种集群方案 主从复制模式Sentinel(哨兵)模式Cluster 模式 为什么要使用集群模式 [1]解决单机故障问题 [2]解决单机压力问题 Redis 集群的三种模式🍉 一.主从复制模式🍉 主从复制原理🥝 从服务器连接…

【软件测试】高级测试进阶 Centos7安装 Docker容器(详细步骤)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 OS 安装环境要求 …

移动应用加固:政务APP如何保障安全?

政务APP是政府部门为了方便公民办理政务事务而开发的移动应用程序。由于政务APP涉及到大量的敏感信息和政府机密,因此面临着多种安全风险的挑战。《国务院办公厅关于印发全国一体化政务服务平台移动端建设指南的通知》(以下简称“通知”)要求…

JAVA开发运维(linux环境防火墙与端口开启使用总结记录)

一、问题背景: 将web项目开发完成,需要上到生产环境。那么我们应用调用的一些ip,端口都是要设置的,比如说应用提供给谁访问,那些人不能访问,应用的端口是多少,也是需要开启才能访问的。在实际研…