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

李宏毅机器学习课程笔记01 | 1.Introduction of Machine/Deep Learning

笔记是在语雀上面做的,粘贴在CSND上可能存在格式错误

机器学习的本质就是借助机器寻找一个转换函数

根据函数的输出类型,可以将机器学习进行分类

  • regression 回归任务:函数输出时一个数值
  • classification 分类任务:人类设定好选项/类别,函数的输出时选项/类别中的一个
  • structured learning : 机器创造一些有结构的信息,比如文本、图

过拟合Overfitting:在训练资料上变好,在没有训练的资料上效果边差

问题1:机器怎么寻找一个转换函数

案例:Youtube频道订阅人数的预测

步骤1:写出一个带有未知参数的函数

猜测其转换函数应该长什么样,这个函数的猜测过程就需要用到领域知识。

猜测:未来点阅次数的函式F,是前一天的点阅次数,乘上w 再加上b

  • y y y 是我们要预测的人数
  • x 1 x_1 x1是这个频道前一天总共观看的人数

名词定义

Feature: Function裡面我们已知的信息 x 1 x_1 x1

Weight: 未知参数

Bias: 未知参数,偏差值

步骤2:从训练数据里定义Loss损失函数L(b,w)

函数的输入是b和w,函数的输出是输入某个特定的b和w,模型结果是是好还是不好L越大说明模型不好,L越小说明模型好
假设有一个损失函数L(0.5k,1) ,模型为y=b+wx1 => y=0.5k+1x1(k是千人的意思)
训练数据(本案例过去的订阅次数)输入到模型(函数)中,比如x输入1月1日订阅人数4.8k,计算得到模型预测的y(1月2日订阅人数)为5.3k,但实际只有4.9k

计算方法: 求取估测的值跟实际的值(Label) 之间的差距

本案例中e取绝对值的方法称为mean absolute error(MAE)平均绝对误差

e=(y-y预测)2称为mean square error(MSE)均方误差
如果y与y预测都是概率分布,可能选择的e为coss-entropy交叉熵

步骤3:optimization 优化 让Loss值最小

优化式:w*,b* = arg m i n w , b \underset {w,b}{min} w,bminL,寻找参数w和b让L最小,将其称为w和b。

本课程用到的Gradient Descent梯度下降方法

  1. 随机选取初始值:假设只有一个参数w,随机选择一个初始点w0

  2. 计算 ∂ L ∂ W ∣ w = w 0 {\frac{\partial L}{ \partial W}}|_{w=w^0} WLw=w0

  3. 根据微分(梯度)的方向,改变参数的值,优化的目标是降低损失值。

    1. 根据微分(梯度)的方向,改变参数的值–应该降低w还是提升w取值?

      ①如果计算出来斜率为负,说明该点w0 处损失值L呈下降趋势,因此增加w就可以获取到更低的L值
      ②同理如果计算出来斜率为正,说明损失值L呈上升趋势,因此降低w值可以获取到更低的L值
      w改变的跨度取决于斜率的大小与学习率的大小,移动跨度公式: η ∂ L ∂ W ∣ w = w 0 \eta{\frac{\partial L}{ \partial W}}|_{w=w^0} ηWLw=w0
      ①斜率大说梯度大损失值改变大可以大幅度降低w。
      η \eta η表示学习速率 ,该值自己设置,在机器学习中,自己设置的固定值称为hyperparameters超参数

  4. 新的w1 = w0- η ∂ L ∂ W ∣ w = w 0 \eta{\frac{\partial L}{ \partial W}}|_{w=w^0} ηWLw=w0 ,重复操作2和操作3不断更新w的取值

  5. 什么时候停下来

    1. 自己设置上限,这个上限也是一个超参数。比如设置更新w 1000次。
    2. 理想情况:微分值为0(极小值点),不会再更新

梯度下降存在问题:有可能陷入局部最小值,不能找到全局最小值 (事实上,局部最小值不算梯度下降真正的痛点)

问题:为什么损失值可以取负数?

估测的值y跟实际的值(Label) 之间的差距在本案例中是取绝对值,不可能有负数。这里图是随便画的和本案例无关

推广到多个参数 => 类似一个参数的做法

不断更新参数,直到找到一个 w 和 b

模型的修改

利用模型预测未知日期新的观看量,发现每个7天一个循环(周一到周四观看量高,周五到周六观看量低,周末观看量增加)

原来的模型只能依据前一天的值预测当天值(随便猜测y=b+wx1),根据上图我们发现其实观看人数呈周期变化,这里猜测采用上周值预测本周值可以得到更精准的模型(对问题有了更深的理解)。

修改新模型为 y = b + ∑ j = 1 7 w j x j y=b+{\sum_{j=1}^7}{w_j}{x_j} y=b+j=17wjxj,下标j表示根据前7天的观看人次,预测当天的观看人次=> 也可以考虑更多天的观看人次

相当于将一个特征值x1 (w同)增加到了7个特征值x 1~7

神经网络

线性模型

linear models =Feature*Weight + bias => 不是要一模一样,在模型修改中的 y = b + ∑ j = 1 7 w j x j y=b+{\sum_{j=1}^7}{w_j}{x_j} y=b+j=17wjxj也是线性模型

线性模型存在严重限制Model Bias(跟前面说的变量b bias意思不同):y只会随x1线性变化 ⇒ 解决方法:需要一个更复杂的、有未知参数的function

Sigmoid Function改写步骤1:写出一个带有未知参数的函数

所有Piecewise Linear Curves分段线性曲线( 定义:由多段锯齿状的线段所组成的线 )= 常数 + 一大堆蓝色function(每一段的蓝色function可能不一样,下述案例只是举例)

=> 可以用Piecewise Linear Curves逼近任何连续曲线

在案例Youtube频道订阅人数的预测中,即使x和y的关系很复杂,但我们感觉应该还是一条连续曲线,所以只要想办法写一个带有未知数的function(常数+一堆蓝色function )

并不知道如何写出这个function,使用Sigmid Function Curves来逼近这个function

Sigmoid Function(S形函数): y = c 1 1 + e − ( b + w x 1 ) y = c\frac{1}{{1+e^{-(b+wx_1)}}} y=c1+e(b+wx1)1

调整 w , b , c w,b,c w,b,c,可以得到各种不同的sigmiod来逼近”蓝色function“,通过求和,最终近似各种不同的连续Function

总结

  1. Piecewise Linear Curves逼近任何连续曲线,Piecewise Linear Curves= 常数 + 一大堆蓝色function,所以需要表示蓝色function(但是并不清楚怎么表示)。
  2. 使用Sigmid Function Curves(可以表示任何连续曲线)通过调整来$ w,b,c $逼近这个蓝色function。
案例理解

套入这个本课程的案例,模型可以表示为$ y=b+\sum_isigmoid(b_i+w_ix_1) $(当天的观看人数和前一天的有关)

调整 b 、 w 、 c b、w、c bwc可以制造不同的蓝色function,不同的蓝色function叠加起来就可以制造出不同的Piecewise Linear Curves ,不同的Piecewise Linear Curves可以去逼近不同的连续函数

前面我们优化过,其实当天的观看人数可以和前几天的有关,模型可以表示为 y = b + ∑ i s i g m o i d ( b i + ∑ j w i j x j ) y=b+\sum_isigmoid(b_i+\sum_jw_{ij}x_j) y=b+isigmoid(bi+jwijxj)i是不同的function函数数量,j表示当前日期的前j天, w i j w_{ij} wij第i个sigmoid给第j个特征的权重


下面将i和j带入实际例子理解一下,假设这个模型由三个不同的sigmoid function叠加生成(sigmoid的数量是自己决定的超参数),当天的预测人数与前三天的观看人数有关,也就是j和i分别取1、2、3

转化为线性代数的形式

  1. b i + ∑ j w i j x j b_i+\sum_jw_{ij}x_j bi+jwijxj等价成 r = b ⃗ + 矩阵 W ∗ x r = \vec{b} + 矩阵W*x r=b +矩阵Wx形式
  2. a = s i g m o i d ( r ) = 1 1 + e − r = σ ( r ) a = sigmoid(r)=\frac1{1+e^{-r}}=\sigma(r) a=sigmoid(r)=1+er1=σ(r),将a的表示简写为 σ ( r ) \sigma(r) σ(r)
  3. 模型线性代数的表达为 y = 常数 b + c T a = 常数 b + c T σ ( r ) = 常数 b + c T σ ( b ⃗ + 矩阵 W ∗ x ⃗ ) y=常数b+c^Ta=常数b+c^T\sigma(r)=常数b+c^T\sigma(\vec{b}+矩阵W*\vec{x}) y=常数b+cTa=常数b+cTσ(r)=常数b+cTσ(b +矩阵Wx )

公式中x为feature 未知参数为矩阵W、常数b、 b ⃗ \vec{b} b c T c^T cT,一般将矩阵W每一行/列抽出来与其他向量拼在一起,将所有的参数统称为 θ \theta θ.(包含 W, b ⃗ \vec{b} b ,b…)

第二步:定义Loss损失函数L( θ \theta θ)

因为所有的参数统称为 θ \theta θ,所以Loss表示为 L ( θ ) L(\theta) L(θ)

输入x求计算出来的 y = b + c T σ ( b ⃗ + 矩阵 W ∗ x ⃗ ) y=b+c^T\sigma(\vec{b}+矩阵W*\vec{x}) y=b+cTσ(b +矩阵Wx ),还是利用平均绝对误差法计算与真实label y ^ \hat{y} y^的误差绝对值 e = ∣ y − y ^ ∣ e=|y-\hat{y}| e=yy^,损失函数 L = 1 N ∑ n e n L=\frac{1}{N}\sum_n{e_n} L=N1nen

第三步:optimization优化 找到参数使L最小

  1. 选定初始参数值(向量) θ 0 \theta_0 θ0
  2. 对每个参数求偏导/微分,每个参数求偏导组成的矩阵叫做gradient梯度有些时候简写为` ∇ \nabla , ∇ L ( θ 0 ) \nabla{L}(\theta^0) L(θ0)
  3. 更新参数,直至设定的次数

批训练Batch training

实际上, 不会一次性将全部数据用于训练一个L,而是将全部资料分成n个batch(这里的n也是一个超参数)去训练n个L。

定义

  • 1 epoch 时期= 使用所有batch的L更新一次 θ \theta θ
  • 1 update/iteration = 每更新一次参数 θ \theta θ

比如有资料N=10000,每个batch划分的资料是100,那么一共有100个batch,一次epoch里会更新100次 θ \theta θ

问题:为什么要将全部资料分成一个一个batch

todo

模型的其他变形

使用Rectified Linear Unit线性整流单元

在上述案例中,我们是将蓝色function(hard sigmoid)近似为<font style="color:#DF2A3F;">(soft)sigmoid function</font>,其实这里还有其他的做法。

比如:每一个hard sigmoid可以使用两个线性整流单元Rectified Linear Unit(ReLU)叠加

图形上的表示为一个折线(两个水平线有一个转折点),公式表示为 c max ⁡ ( 0 , b + w x 1 ) c\max(0,b+wx_1) cmax(0,b+wx1),上述的模型 y = b + ∑ i s i g m o i d ( b i + ∑ j w i j x j ) y=b+\sum_isigmoid(b_i+\sum_jw_{ij}x_j) y=b+isigmoid(bi+jwijxj)可表示为 y = b + ∑ 2 i m a x ( 0 , b i + ∑ j w i j x j ) y=b+\sum_{2i}max(0,b_i+\sum_jw_{ij}x_j) y=b+2imax(0,bi+jwijxj),其中i表示函数的条数,1个hard sigmoid需要用2个relu函数叠加而成

:::tips
这里的sigmoid和Relu在机器学习中被称为Activation funtion激活函数

:::

问题:哪一个激活函数效果更好

todo

增加嵌套层数

生成a后,可以嵌套生成a’,这里的嵌套次数是一个超参数

问题:为什么可以这样做,这样做的原因是什么

这里感觉没讲明白

我的理解:从图像来讲a表示的是一个s型曲线(c只影响高度),将一个hard sigmoid逼近为一个sigmoid。那再做一次表示再逼近一次?

Deep Learning

以前的叫法:这些sigmoid或者Relu被叫做一个neuron神经元,很多neurl被叫做Neural Network神经网络

现在的叫法:每一排Neural叫做一个hidden layer,很多hidden layer被叫做Deep,这一套技术被叫做Deep Learning深度学习

相关文章:

李宏毅机器学习课程笔记01 | 1.Introduction of Machine/Deep Learning

笔记是在语雀上面做的&#xff0c;粘贴在CSND上可能存在格式错误 机器学习的本质就是借助机器寻找一个转换函数 根据函数的输出类型&#xff0c;可以将机器学习进行分类 regression 回归任务&#xff1a;函数输出时一个数值classification 分类任务&#xff1a;人类设定好选项…...

探索Docker Compose:轻松管理多容器应用

探索Docker Compose&#xff1a;轻松管理多容器应用 在现代软件开发中&#xff0c;容器化已经成为构建、部署和扩展应用的主流方式。而Docker Compose作为Docker生态系统的重要组成部分&#xff0c;可以简化多容器应用的管理。本文将深入探讨Docker Compose的核心功能及应用场…...

java中static和const和final的区别

static 关键字 static 关键字用于声明类的成员&#xff08;方法或变量&#xff09;为静态成员。静态成员属于类本身&#xff0c;而不是类的实例。换句话说&#xff0c;静态成员可以通过类名直接访问&#xff0c;而不需要实例化对象。 静态变量&#xff1a;属于类的所有对象共…...

[Win32/ATL]_[初级]_[处理WM_PAINT消息注意事项]

场景 在开发Win32/WTL程序时&#xff0c;遇到了使用CFolderDialog(atldlgs.h)打不开目录选择对话框的情况。具体表现是执行了窗口的DoModal&#xff0c;却没有窗口弹出来。 可以确定执行操作是在主线程,并不是工作线程。调试时暂停看堆栈&#xff0c;知道到DoModal方法里的SHB…...

【DevOps】Jenkins项目发布

Jenkins项目发布 文章目录 Jenkins项目发布前言资源列表基础环境一、Jenkins发布静态网站1.1、项目介绍1.2、部署Web1.3、准备gitlab1.4、配置gitlab1.5、创建项目1.6、推送代码 二、Jenkins中创建gitlab凭据2.1、创建凭据2.2、在Jenkins中添加远程主机2.3、获取gitlab项目的UR…...

Lua迭代器如何使用?

在Lua中&#xff0c;迭代器是一种用于遍历集合元素的重要工具。掌握迭代器的使用方法&#xff0c;对于提高Lua编程的效率和代码的可读性具有重要意义。 1.迭代器概述 12.1.1 迭代器介绍 迭代器是一种设计模式&#xff0c;它提供了一种访问集合元素的方法&#xff0c;而不需要…...

cesium小知识:3D tiles 概述、特点、示例

Cesium 的 3D Tiles 是一种高效的、流式传输的三维地理空间数据格式,专为在Web浏览器中快速渲染大规模三维场景而设计。3D Tiles 支持多种几何类型,包括点云、多边形、模型等,并且可以包含丰富的属性信息和层次细节(LOD, Level of Detail)结构,以确保不同设备和网络条件下…...

PTA DS 基础实验3-2.1 一元多项式求导

基础实验3-2.1 一元多项式求导 分数 20 全屏浏览 切换布局 作者 DS课程组 单位 浙江大学 设计函数求一元多项式的导数。 输入格式: 以指数递降方式输入多项式非零项系数和指数&#xff08;绝对值均为不超过1000的整数&#xff09;。数字间以空格分隔。 注意&#xff1a…...

【玩转全栈】----用户管理案例

目录 案例需求&#xff1a; 成果显示&#xff1a; 源码展示&#xff1a; 部分源码解释及注意 1、info_list.html文件 2、info_add.html文件 3、models.py文件 4、views.py文件 经过前面的学习&#xff0c;相信您对Django、MySQL&#xff0c;以及他们之间的连接已经非常熟悉了&a…...

文件上传漏洞利用与绕过姿势总结

文章目录 攻击与绕过方式一、条件竞争二、二次渲染结合文件包含绕过1、gif2、png3、jpg 三、.htaccess解析绕过四、文件后缀名绕过1、文件特殊后缀名大小写绕过2、::$DATA绕过3、双后缀名绕过4、点绕过5、空格绕过 五、文件头绕过六、短标签绕过七、MIME(Content-Type)绕过八、…...

Java十六

2-9-1Request和Response介绍 Request继承体系 ServletRequest————Java提供的请求对象根接口 Http ServletRequest————Java提供的对Http协议封装的请求对象接口 RequestFacade————Tomcat定义的实现类 1.Tomcat需要解析请求数据,封装为request对象,并且创建requ…...

人工智能在事件管理中的应用

随着科技的不断发展,人工智能(AI)正在深入到各行各业,运维领域也不例外。在事件管理中,AI通过其强大的数据分析和自动化能力,帮助团队更高效地处理系统事件,提升业务的稳定性和用户体验。 什么是事件管理? 事件管理是IT运维的重要组成部分,其核心目标是快速响应和处…...

Launcher3版本确定

Launcher3有几个不同的版本&#xff0c;引入的代码和资源文件有所不同&#xff0c;我们需要确认当前设备中使用的是哪个 查看bp脚本可以看到会生成四个app /packages/apps/Launcher3$ grep -nr -E "android\_app\ \{" -A 1 ./Android.bp 184:android_app { 185- …...

算法题(25):只出现一次的数字(三)

审题&#xff1a; 该题中有两个元素只出现一次并且其他元素都出现两次&#xff0c;需要返回这两个只出现一次的数&#xff0c;并且不要求返回顺序 思路: 由于对空间复杂度有要求&#xff0c;我们这里不考虑哈希表。我们采用位运算的方法解题 方法&#xff1a;位运算 首先&#…...

atrust异常导致ERR_NETWORK_CHANGED

首先因为工作需要不断安装卸载不同版本深信服的atrust。那么可能遇到和我一样的问题。 深信服的这种东西有点毛病&#xff0c;以前只是偶尔导致我局域网无法访问&#xff0c;我停止atrust后&#xff0c;他还有后台程序在后台不断更改我的适配器&#xff0c;在我局域网需要固定…...

【Infineon AURIX】AURIX缓存(CACHE)变量访问指南

AURIX缓存变量访问指南 引言 本文分析Infineon AURIX控制器在调试过程中访问缓存内存变量的问题及解决方案重点探讨了变量缓存对调试的影响以及多种解决方法的优劣第1部分:问题描述与成因分析 主要症状 变量值发生变化,但实时内存访问显示初始值Watch窗口和Memory窗口中的变…...

轻量级通信协议 JSON-RPC 2.0 详解

目录 JSON-RPC 2.0 简介 请求对象 响应对象 通知 批量请求 错误码 使用场景 文档和版本控制 社区和支持 小结 参考资料 JSON-RPC 2.0 简介 JSON-RPC (JavaScript Object Notation - Remote Procedure Call) 是一种轻量级的远程过程调用协议&#xff0c;使用 JSON&am…...

[读书日志]从零开始学习Chisel 第一篇:书籍介绍,Scala与Chisel概述,Scala安装运行(敏捷硬件开发语言Chisel与数字系统设计)

简介&#xff1a;从20世纪90年代开始&#xff0c;利用硬件描述语言和综合技术设计实现复杂数字系统的方法已经在集成电路设计领域得到普及。随着集成电路集成度的不断提高&#xff0c;传统硬件描述语言和设计方法的开发效率低下的问题越来越明显。近年来逐渐崭露头角的敏捷化设…...

深入了解 StarRocks 表类型:解锁高效数据分析的密码

在当今数字化浪潮下&#xff0c;大数据分析成为企业决策、优化业务流程的关键利器。StarRocks 作为一款备受瞩目的高性能分析型数据库&#xff0c;其多样化的表类型为复杂的数据处理需求提供了精准解决方案。今天&#xff0c;就让我们一同深入探索 StarRocks 中的主键表、明细表…...

spring mvc源码学习笔记之四

pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

Spring Boot + Redis + Sa-Token

参考文献 Sa-Token实现分布式登录鉴权&#xff08;Redis集成 前后端分离&#xff09;-腾讯云开发者社区-腾讯云 介绍 StpInterface 是 Sa-Token 框架中的一个接口&#xff0c;属于 Sa-Token 身份认证与授权框架的一部分。该接口提供了一些方法来实现自定义的身份认证和授权管…...

【顶刊TPAMI 2025】多头编码(MHE)之Part 6:极限分类无需预处理

目录 1 标签分解方法的消融研究2 标签分解对泛化的影响3 讨论4 结论 论文&#xff1a;Multi-Head Encoding for Extreme Label Classification 作者&#xff1a;Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang 单位&#xff1a;山东大学 代码&#xff1a;https:…...

Spring Certified Professional 2024 (2V0-72.22)

关于认证 Spring Certified Professional (2V0-72.22) 认证可证明您在 Spring Framework 方面的专业知识&#xff0c;Spring Framework 是构建企业级 Java 应用程序的领先平台。此认证在全球范围内得到认可&#xff0c;并证明您在 Spring 的各个方面都具有熟练程度&#xff0c;…...

asp.net core框架搭建4-部署IIS/Nginx/Docker

文章目录 系列文章一、Linux上部署Nginx1.1 Centos 安装配置环境1.2 使用Systemctl 控制Nginx 二、部署IIS三、部署Docker3.1 创建 Dockerfile 文件3.2 构建 Docker 镜像3.3 运行 Docker 容器3.4 检查容器运行情况 结束语 作者&#xff1a;xcLeigh 文章地址&#xff1a;https:/…...

改善 Kibana 中的 ES|QL 编辑器体验

作者&#xff1a;来自 Elastic Marco Liberati 随着新的 ES|QL 语言正式发布&#xff0c;Kibana 中开发了一种新的编辑器体验&#xff0c;以帮助用户编写更快、更好的查询。实时验证、改进的自动完成和快速修复等功能将简化 ES|QL 体验。 我们将介绍改进 Kibana 中 ES|QL 编辑器…...

webpack5基础(上篇)

一、基本配置 在开始使用 webpack 之前&#xff0c;我们需要对 webpack 的配置有一定的认识 1、5大核心概念 1&#xff09;entry &#xff08;入口&#xff09; 指示 webpack 从哪个文件开始打包 2&#xff09;output&#xff08;输出&#xff09; 制视 webpack 打包完的…...

C#设计模式(行为型模式):观察者模式

C#设计模式&#xff1a;观察者模式&#xff0c;让对象间通信更优雅 在软件开发中&#xff0c;我们经常会遇到一个对象的状态发生改变&#xff0c;其他对象需要自动更新或做出相应反应的场景。例如&#xff1a; GUI事件处理&#xff1a; 当用户点击按钮时&#xff0c;按钮需要…...

pg_wal 目录下 wal 日志文件异常累积过大

文章目录 背景当前配置分析解决过程1. 活动事务未完成2. 备份滞后或归档未完成3. 保留了过多的 WAL 文件4. 逻辑复制槽未释放5. 文件系统问题6. 强制触发 WAL 清理结果lsof D 是啥意思检查进程从名字来看, 该 wal 文件是最小的文件(一般也是最老的 wal 文件)pg_archivecleanup …...

【人工智能】用Python实现深度卷积生成对抗网络(DCGAN):原理、实现与优化

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 深度卷积生成对抗网络(DCGAN)是一种结合了卷积神经网络(CNN)和生成对抗网络(GAN)的深度学习模型,广泛应用于图像生成、图像增强、以…...

领域驱动设计(4)—绑定模型与实现

&#xff08;4&#xff09;—绑定模型与实现 模式&#xff1a;MODEL-DRIVEN DESIGN为什么模型对用户至关重要?模式&#xff1a;HANDS-ON MODELER 很多项目设计之初只考虑到模型如何设计&#xff0c;没有将模型如何实现、数据关系如何存储这些实现考虑在内&#xff0c;往往设计…...

logback日志框架源码分析

目录 (一)入口:slf4j选择日志框架 (二)日志框架初始化 (1)logback的3种配置方式 a、BasicConfigurator默认配置 b、SPI方式配置的Configurator实现类 c、通过配置文件初始化 (2)xml配置文件初始化 (三)Logger的创建 (四)打印日志 本文源码基于:logback版…...

Airflow:HttpSensor实现API驱动数据流程

数据管道工作流通常依赖于api来访问、获取和处理来自外部系统的数据。为了处理这些场景&#xff0c;Apache Airflow提供了HttpSensor&#xff0c;这是一个内置的Sensor&#xff0c;用于监视HTTP请求的状态&#xff0c;并在满足指定条件时触发后续任务。在这篇博文中&#xff0c…...

在Mac电脑上搭建Gradle

1. 检查是否已安装Homebrew 打开终端&#xff0c;输入以下命令检查Homebrew是否已安装&#xff1a; brew -v如果显示版本号&#xff0c;则表示已安装。如果未安装&#xff0c;请运行以下命令安装Homebrew&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubus…...

登录的几种方式

使用Session完成登录 1. 手机号发送验证码 逻辑步骤&#xff1a; 校验手机号格式是否正确。生成验证码&#xff08;例如使用Hutool工具类&#xff09;。将手机号和验证码存入Session。返回验证码发送成功的响应。 2. 用户登录逻辑 逻辑步骤&#xff1a; 从Session中获取存…...

Python学习(5):数据结构

1 列表 1.1 列表方法 列表数据类型支持很多方法&#xff0c;列表对象的所有方法所示如下&#xff1a; list.append(x)&#xff1a;在列表末尾添加一项。 类似于 a[len(a):] [x]。list.extend(iterable)&#xff1a;通过添加来自 iterable 的所有项来扩展列表。 类似于 a[len…...

第五届电网系统与绿色能源国际学术会议(PGSGE 2025)

2025年第五届电网系统与绿色能源国际学术会议(PGSGE 2025) 定于2025年01月10-12日在吉隆坡召开。 第五届电网系统与绿色能源国际学术会议&#xff08;PGSGE 2025&#xff09; 基本信息 会议官网&#xff1a;www.pgsge.org【点击投稿/了解会议详情】 会议时间&#xff1a;202…...

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 1:背景动机

目录 1 简单概括2 几个重要发现3 主要贡献4 背景知识5 方法简介 论文&#xff1a;Multi-Head Encoding for Extreme Label Classification 作者&#xff1a;Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang 单位&#xff1a;山东大学 代码&#xff1a;https://gi…...

ruckus R510升级到Unleashe后不能访问

ruckus R510 是IPQ4019&#xff0c;升级到Unleashe&#xff0c;它弹窗提示 但是这个IP没办法用&#xff0c;访问不了AP。 必应了一下&#xff0c;官方提示用advance ip scanner扫描。 扫描持续好久&#xff0c;发现IP竟然是从主路由获得。 9090的端口不用填&#xff0c;甚至不…...

初学stm32 --- FSMC驱动LCD屏

目录 FSMC简介 FSMC框图介绍 FSMC通信引脚介绍 FSMC_NWE 的作用 FSMC_NWE 的时序关系 FSMC_NOE 的含义 FSMC_NOE 的典型用途 FSMC_NOE 的时序关系 使用FSMC驱动LCD FSMC时序介绍 时序特性中的 OE ILI9341重点时序&#xff1a; FSMC地址映射 HADDR与FSMC_A关系 LCD的…...

【2025最新计算机毕业设计】基于Spring Boot+Vue影院购票系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

Java 内存溢出(OOM)问题的排查与解决

在 Java 开发中&#xff0c;内存溢出&#xff08;OutOfMemoryError&#xff0c;简称 OOM&#xff09;是一个常见且棘手的问题。相比于数组越界、空指针等业务异常&#xff0c;OOM 问题通常更难定位和解决。本文将通过一次线上内存溢出问题的排查过程&#xff0c;分享从问题表现…...

Android14 CTS-R6和GTS-12-R2不能同时测试的解决方法

背景 Android14 CTS r6和GTS 12-r1之后&#xff0c;tf-console默认会带起OLC Server&#xff0c;看起来olc server可能是想适配ATS(android-test-station)&#xff0c;一种网页版可视化、可配置的跑XTS的方式。这种网页版ATS对测试人员是比较友好的&#xff0c;网页上简单配置下…...

周末总结(2024/01/04)

工作 人际关系核心实践&#xff1a; 要学会随时回应别人的善意&#xff0c;执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己&#xff0c;抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内&#xff0c;职场社交不要放在5min以外 职场的人际关系在面对利…...

《Rust权威指南》学习笔记(二)

枚举enum 1.枚举的定义和使用如下图所示&#xff1a; 定义时还可以给枚举的成员指定数据类型&#xff0c;例如&#xff1a;enum IpAddr{V4(u8, u8, u8, u8),V6(String),}。枚举的变体都位于标识符的命名空间下&#xff0c;使用::进行分隔。 2.一个特殊的枚举Option&#xff0…...

Docker 远程访问完整配置教程以及核心参数理解

Docker 远程访问完整配置教程 以下是配置 Docker 支持远程访问的完整教程&#xff0c;包括参数说明、配置修改、云服务器安全组设置、主机防火墙配置&#xff0c;以及验证远程访问的详细步骤。 1. 理解 -H fd:// 参数的作用&#xff08;理解了以后容易理解后面的操作&#xff…...

在ros2 jazzy和gazebo harmonic下的建图导航(cartographer和navigation)实现(基本)

我的github分支&#xff01;&#xff01;&#xff01; 你可以在这里找到相对应的源码。 DWDROME的MOGI分支 来源于&#xff01;&#xff01; MOGI-ROS/Week-3-4-Gazebo-basics 学习分支整理日志 分支概述 这是一个用于个人学习的新分支&#xff0c;目的是扩展基本模型并添加…...

常见的显示器分辨率及其对应的像素数量

显示器的像素数量通常由其分辨率决定&#xff0c;分辨率表示为水平像素数乘以垂直像素数。 720P&#xff08;1280720&#xff09;&#xff1a; 像素数量&#xff1a;约92.16万特点&#xff1a;这是高清标准的一个分辨率&#xff0c;通常用于手机、平板电脑或小型显示器。900P&…...

浅谈分布式共识算法

分布式共识算法 基础概念1、容错2、共识3、拜占庭将军问题4、多数派5、共识算法分类6、ACID&BASE&CAP Paxos1、相关概念2、三种角色3、运行阶段4、Multi Paxos5、总结6、演化 ZAB1、相关概念2、三种角色3、成员状态4、运行阶段5、ZooKeeper流程6、总结 Raft1、相关概念…...

[Linux]redis5.0.x升级至7.x完整操作流程

1. 从官网下载最新版redis&#xff1a; 官网地址&#xff1a;https://redis.io/download 注&#xff1a;下载需要的登录&#xff0c;如果选择使用github账号登录&#xff0c;那么需要提前在github账号中取消勾选“Keep my email addresses private”&#xff08;隐藏我的邮箱…...

Vue项目中生成node_modules文件夹的两种常用方法及npm优势

在Vue项目中生成node_modules文件夹的过程非常简单,主要步骤如下: 1、使用 npm 安装依赖包; 2、使用 yarn 安装依赖包。其中,推荐使用npm安装依赖包,原因如下: 兼容性更广:npm是Node.js的默认包管理工具,具有更高的兼容性。社区支持:npm拥有更大的用户基础和社区支持,…...