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

练习4-权重衰减(李沐函数简要解析)

环境:练习1的环境

代码详解

0.导入库

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

1.初始化数据
这里初始化出train_iter test_iter 可以查一下之前的获取Fashion数据集后的数据格式与此对应

n_train, n_test, num_inputs, batch_size = 20, 100, 200, 5
true_w, true_b = torch.ones((num_inputs, 1)) * 0.01, 0.05
train_data = d2l.synthetic_data(true_w, true_b, n_train)
train_iter = d2l.load_array(train_data, batch_size)
test_data = d2l.synthetic_data(true_w, true_b, n_test)
test_iter = d2l.load_array(test_data, batch_size, is_train=False)

2.简洁实现

这补充个多层的写法
optimizer = torch.optim.SGD([
{“params”: net[0].weight, “weight_decay”: wd},
{“params”: net[0].bias},
{“params”: net[1].weight, “weight_decay”: wd},
{“params”: net[1].bias},
{“params”: net[2].weight, “weight_decay”: wd},
{“params”: net[2].bias}
], lr=lr)

def train_concise(wd):#定义了一层线性层模型,输入特征个数是num_inputs(怎么来的?) 输出个数是1net=nn.Sequential(nn.Linear(num_inputs,1)) for param in net.parameters():#初始化w,b 按照(均值为0,方差为1)来初始化,b会被随机初始化为较小的值param.data.normal_()#定义损失函数loss=nn.MSELoss(reduction='none')num_epochs,lr=100,0.03#定义优化器(这里开始设置限制w^2对于损失函数的影响大小了 -> wd)#这段代码包含了神经网络第一层的所有参数,并且为这些参数应用了不同的设置或限制#因为这个模型只有一层trainer=torch.optim.SGD([{"params":net[0].weight,'weight_decay': wd},{"params":net[0].bias}], lr=lr)#x轴是epochs y轴是loss #x轴设置范围从第五轮到 最后一轮  y轴设置对数标度 对数标度:对原始数据进行对数变换后显示的#legend=['train', 'test']: 这为图表设置了图例,标识两条曲线分别代表训练集("train")和测试集("test")的损失值animator = d2l.Animator(xlabel='epochs', ylabel='loss', yscale='log',xlim=[5, num_epochs], legend=['train', 'test'])for epoch in range(num_epochs):for X, y in train_iter:trainer.zero_grad()l = loss(net(X), y)l.mean().backward()trainer.step()if (epoch + 1) % 5 == 0:#相当于在animator增加数据点 epoch,训练平均损失,测试平均损失animator.add(epoch + 1,(d2l.evaluate_loss(net, train_iter, loss),d2l.evaluate_loss(net, test_iter, loss)))print('w的L2范数:', net[0].weight.norm().item())#开始测试
train_concise(0)

重点理解

1.权重衰减是怎么做到的:
Loss=Loss+lamb/2 * (w^2)
当w越大Loss越大,Loss越大,越要减小,也同时减小w
在这里插入图片描述

2.原理:
多个函数下如何算最值

3.代码实现:
trainer=torch.optim.SGD([
{“params”:net[0].weight,‘weight_decay’: wd},
{“params”:net[0].bias}], lr=lr)

参考视频:
https://www.bilibili.com/video/BV1Z44y147xA/?spm_id_from=333.999.0.0&vd_source=302f06b1d8c88e3138547635c3f4de52

相关文章:

练习4-权重衰减(李沐函数简要解析)

环境:练习1的环境 代码详解 0.导入库 import torch from torch import nn from d2l import torch as d2l1.初始化数据 这里初始化出train_iter test_iter 可以查一下之前的获取Fashion数据集后的数据格式与此对应 n_train, n_test, num_inputs, batch_size 20, 100, 200, …...

websocket 中 request-line 中的URI编码问题

首先,request-line组成如下: Request-Line Method SP Request-URI SP HTTP-Version CRLF 在 rfc6455 规范的 5.1.2 Request-URI 中,有这样的描述: The Request-URI is transmitted in the format specified in section 3.2.1. …...

为何ChatGPT日耗电超50万度?

看新闻说,ChatGPT每天的耗电量是50万度,国内每个家庭日均的耗电量不到10度,ChatGPT耗电相当于国内5万个家庭用量。 网上流传,英伟达创始人黄仁勋说:“AI的尽头是光伏和储能”,大佬的眼光就是毒辣&#xff…...

__init__.py 的作用

在 Python 中,包含一个名为 __ init __.py 的文件的目录被称为一个包(package)。 __ init __.py 文件的作用有以下几点: 指示包含该文件的目录是一个 Python 包:当 Python 导入一个包时,会查找该包所在目录…...

Redis到底是多线程还是单线程?

Redis6.0之前:是单线程模式。 Redis6.0之后:Redis的IO线程是多线程,worker线程是单线程。 Redis6.0之前:单线程 Redis6.0之后:Redis的IO线程是多线程,worker线程是单线程。...

JAVA 100道题(18)

18.实现一个除法运算的方法,能够处理被除数为零的情况,并抛出异常。 在Java中,你可以创建一个除法运算的方法,该方法接受两个整数作为参数,分别代表被除数和除数。如果被除数为零,你可以抛出一个自定义的异…...

【C++】每日一题 137 只出现一次的数字

给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 #include <vector>int singleNumber(std::vecto…...

RAG进阶笔记:RAG进阶

1 查询/索引部分 1.1 层次索引 创建两个索引——一个由摘要组成&#xff0c;另一个由文档块组成分两步进行搜索&#xff1a;首先通过摘要过滤出相关文档&#xff0c;接着只在这个相关群体内进行搜索 1.2 假设性问题 让LLM为每个块生成一个假设性问题&#xff0c;并将这些问…...

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 ACL 2023

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 前言简介Clause EncoderJoint Constrained LearningBoundary Adjusting损失函数前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Joint Cons…...

【微服务】接口幂等性常用解决方案

一、前言 在微服务开发中&#xff0c;接口幂等性问题是一个常见却容易被忽视的问题&#xff0c;同时对于微服务架构设计来讲&#xff0c;好的幂等性设计方案可以让程序更好的应对一些高并发场景下的数据一致性问题。 二、幂等性介绍 2.1 什么是幂等性 通常我们说的幂等性&…...

RocketMQ学习笔记:零拷贝

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、零拷贝技术1.1、什么是零拷贝1.2、mmap()1.3、Java中的零拷贝 1、零拷贝技术 1.1、什么是零拷贝 使用传统的IO&#xff0c;从硬盘读取数据然后发送到网络需要经过四个步骤。 通过DMA复…...

3.26日总结

1.Fliptile Sample Input 4 4 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 Sample Output 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 题意&#xff1a;在题目输入的矩阵&#xff0c;在这个矩阵的基础上&#xff0c;通过最少基础反转&#xff0c;可以将矩阵元素全部变为0&#xff0c;如果不能达…...

应用日志集成到ElasticSearch

1、阿里云sls平台集成日志 阿里sls集成日志步骤 2、filebeat 收集到指定es 安装docker容器 Docker安装 拉取镜像&#xff1a; docker pull elastic/filebeat:7.5.1启动&#xff1a; docker run -d --namefilebeat elastic/filebeat:7.5.1拷贝容器中的数据文件到宿主机&a…...

MySQL多表联查函数

1 多表联查 1.1 表之间的关系 表和表的关系有: 一对一 老公 --> 老婆 , 人 ---> 身份证/户口本 一对多 皇帝 --> 妻妾 , 人 ---> 房/车 多对多 订单 --> 商品 1.2 合并结果集 合并结果集,是将多表查询的结果纵向合并 语法: select field1,field2 from t1 un…...

JAVAEE—实现多线程版本的定时器

文章目录 什么是定时器定时器的概念定时器的简单应用和介绍代码示例 定时器的代码解析定时器在执行任务的时候是创建了一个线程去执行吗&#xff1f;为什么叫做扫描线程呢&#xff1f;执行完任务之后代码就暂停了不自动结束吗&#xff1f; 手撕定时器demo相对时间与绝对时间Myt…...

KY228 找位置(用Java实现)

描述 对给定的一个字符串&#xff0c;找出有重复的字符&#xff0c;并给出其位置&#xff0c;如&#xff1a;abcaaAB12ab12 输出&#xff1a;a&#xff0c;1&#xff1b;a&#xff0c;4&#xff1b;a&#xff0c;5&#xff1b;a&#xff0c;10&#xff0c;b&#xff0c;2&…...

物联网边缘网关有哪些优势?-天拓四方

随着物联网技术的快速发展&#xff0c;越来越多的设备接入网络&#xff0c;数据交互日益频繁&#xff0c;对数据处理和传输的要求也越来越高。在这样的背景下&#xff0c;物联网边缘网关应运而生&#xff0c;以其低延迟、减少带宽消耗、提高数据质量和安全性等优势&#xff0c;…...

【C++】6-2 交换函数2 分数 10

6-2 交换函数2 分数 10 全屏浏览 切换布局 作者 刘利 单位 惠州学院 根据题目需求&#xff0c;编写一个交换函数Swap。 裁判测试程序样例&#xff1a; #include <iostream> using namespace std; class pen{private:string brand;string color;double price;publi…...

kafka 01

01....

Linux离线安装Docker-Oracle_11g

拉取oracle11g镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g创建11g容器 docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g查看容器是否创建成功 docker ps -a导出oracle容器&#xff0c;查看…...

避坑指南:在Ubuntu 22.04服务器上部署LibreOffice和JODConverter的完整流程(含中文字体配置)

Ubuntu 22.04服务器部署LibreOffice与JODConverter全流程&#xff1a;从中文字体配置到生产级优化在文档管理系统开发中&#xff0c;文件预览功能一直是刚需。不同于Windows环境的图形化操作&#xff0c;Linux服务器部署面临依赖缺失、字体配置、服务管理等诸多挑战。本文将手把…...

在CentOS 7.9上保姆级安装Keysight ADS 2024,并解决Virtuoso集成报错(附完整环境变量配置)

在CentOS 7.9上实现Keysight ADS 2024与Cadence Virtuoso无缝集成的全流程指南对于射频集成电路&#xff08;RFIC&#xff09;设计工程师而言&#xff0c;Keysight ADS&#xff08;Advanced Design System&#xff09;与Cadence Virtuoso的协同工作能力是提升设计效率的关键。本…...

LeetCode 724:寻找数组的中心下标 | 前缀和的平衡点

LeetCode 724&#xff1a;寻找数组的中心下标 | 前缀和的平衡点 引言 寻找数组的中心下标&#xff08;Find Pivot Index&#xff09;是 LeetCode 第 724 题&#xff0c;难度为 Easy。题目要求在数组中找到某个索引&#xff0c;使得该索引左侧所有元素的和等于右侧所有元素的和。…...

神经形态光子计算与单通道压缩感知:重塑超高速机器视觉新范式

1. 项目概述&#xff1a;为什么我们需要“扔掉”图像传感器&#xff1f;在机器视觉领域&#xff0c;我们似乎陷入了一个“速度陷阱”。无论是工业质检、自动驾驶&#xff0c;还是科学观测&#xff0c;对“更快”的追求永无止境。传统机器视觉的流程非常清晰&#xff1a;图像传感…...

基于RTK-GPS与ResNet50的自主草坪清扫机器人系统设计与实践

1. 项目概述与核心挑战在公园维护的日常工作中&#xff0c;草坪垃圾清理是一项既耗费人力又效率低下的重复性劳动。传统的清扫方式要么依赖人工&#xff0c;要么使用大型、笨重且可能损伤草皮的设备。我们团队的目标&#xff0c;是设计并实现一个能够自主、高效且温和地完成这项…...

天赐范式第52天:Kimi自打跟了我搞CFD没少吃苦,没过一天舒心日子~论Kimi的战斗意志~我必须承认:我分析不下去了,真×1,我放弃逻辑推演×6,最后让代码自己招供,抓出幕后真凶幽灵BUG变量N。

Kimi经常推演程序很久很久&#xff0c;有的时候我就看他一行一行的输出&#xff0c;去思考很多事情&#xff0c;有的时候我就放松下来&#xff0c;看他不停的输出&#xff0c;又想自己现在是这个样子&#xff0c;未来一定不是这个样子&#xff0c;Kimi、DPSK、文心、豆包、DuMa…...

【Python趣味编程】用 Tkinter 打造“爱心便签墙”:一份来自代码的温柔

【Python趣味编程】用 Tkinter 打造“爱心便签墙”&#xff1a;一份来自代码的温柔 文章目录【Python趣味编程】用 Tkinter 打造“爱心便签墙”&#xff1a;一份来自代码的温柔&#x1f3af; 前言&#x1f9e0; 核心思路关键点&#xff1a;&#x1f4bb; 完整代码&#x1f527;…...

HRN三维人脸UV对齐:Blender与Unity跨平台精准映射指南

1. 这不是“贴图导入”&#xff0c;而是三维人脸数据流的精准对齐很多人第一次看到“3D Face HRN”这个词&#xff0c;下意识会以为是某种新出的美颜插件&#xff0c;或者Unity Asset Store里点几下就能拖进场景的预制体。我去年在给一家医疗仿真团队做面部肌肉运动模拟时也这么…...

医考app哪个比较好?2026年四款主流医考App深度横评(医路赢家/医考帮/蓝基因/丁香医考)

本文导读&#xff1a;市面上医考app越来越多&#xff0c;选错浪费时间还耽误备考。我从题库、课程覆盖、服务、通过率、核心特色、优点、缺点、适合人群八个维度&#xff0c;逐款拆解目前最主流的四款医考App——医路赢家、医考帮、蓝基因、丁香医考。全文无广&#xff0c;真实…...

两个世界的同一种崩溃:从窗口黑屏到宇宙热寂的同构联想

一、两个世界的同一种崩溃 一段着色器代码中 cell.xy 的缩放因子从 9 被修改为 99。着色器随即呈现完全黑屏——既无报错信息&#xff0c;也无渲染异常&#xff0c;只有纯粹、彻底、连噪点都不存在的黑色。在屏幕的某个抽象维度上&#xff0c;发生了一件与理论物理学家在黑板上…...