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

深度学习基础3

目录

1.过拟合与欠拟合

1.1 过拟合

1.2 欠拟合

1.2 解决欠拟合

1.2.1 L2正则化

1.2.2 L1正则化

1.2.3 Dropout

1.2.4 简化模型

1.2.5 数据增强

1.2.6 早停

1.2.7 模型集成

1.2.8 交叉验证

2.批量标准化

2.1 实现过程

2.1.1 计算均值和方差

2.1.2 标准化

2.1.3 缩放和平移

2.1.4 标准化公式

2.2 训练和推理阶段

2.3 BatchNorm


1.过拟合与欠拟合

在训练深层神经网络时,由于模型参数较多,在数据量不足时很容易过拟合。而正则化技术主要就是用于防止过拟合,提升模型的泛化能力(对新数据表现良好)和鲁棒性(对异常数据表现良好)。

1.1 过拟合

过拟合是指模型对训练数据拟合能力很强、表现很好,但在测试数据上表现较差。

过拟合常见原因有:

  • 数据量不足:当训练数据较少时,模型可能会过度学习数据中的噪声和细节。

  • 模型太复杂:如果模型很复杂,也会过度学习训练数据中的细节和噪声。

  • 正则化强度不足:如果正则化强度不足,可能会导致模型过度学习训练数据中的细节和噪声。

1.2 欠拟合

欠拟合是由于模型学习能力不足,无法充分捕捉数据中的复杂关系。

1.2 解决欠拟合

欠拟合的解决思路比较直接:

  • 增加模型复杂度:引入更多的参数、增加神经网络的层数或节点数量,使模型能够捕捉到数据中的复杂模式。

  • 增加特征:通过特征工程添加更多有意义的特征,使模型能够更好地理解数据。

  • 减少正则化强度:适当减小 L1、L2 正则化强度,允许模型有更多自由度来拟合数据。

  • 训练更长时间:如果是因为训练不足导致的欠拟合,可以增加训练的轮数或时间.

1.2.1 L2正则化

L2 正则化通过在损失函数中添加权重参数的平方和来实现,目标是惩罚过大的参数值。

数学表示:

设损失函数为 L(\theta),其中 \theta 表示权重参数,加入L2正则化后的损失函数表示为:

其中:

  • L(\theta) 是原始损失函数(比如均方误差、交叉熵等)。

  • \lambda 是正则化强度,控制正则化的力度。

  • \theta_i 是模型的第 i 个权重参数。

  • \frac{1}{2} \sum_{i} \theta_i^2 是所有权重参数的平方和,称为 L2 正则化项。

L2 正则化会惩罚权重参数过大的情况,通过参数平方值对损失函数进行约束。

梯度更新:

在 L2 正则化下,梯度更新时,不仅要考虑原始损失函数的梯度,还要考虑正则化项的影响。更新公式:

其中:

  • \eta 是学习率。

  • \nabla L(\theta_t) 是损失函数关于参数 \theta_t 的梯度。

  • \lambda \theta_t 是 L2 正则化项的梯度,对应的是参数值本身的衰减。

很明显,参数越大惩罚力度就越大,从而让参数逐渐趋向于较小值,避免出现过大的参数。

API:

optimizer = optim.SGD(model.parameters(), lr, weight_decay)

import torch
import torch.nn as nn
import torch.optim as optimclass Net(nn.Module):def __init__(self):super(Net,self).__init__()# 输入层self.linear1 = nn.Linear(2,2)self.linear1.weight.data=torch.tensor([[0.15,0.20],[0.25,0.30]])self.linear1.bias.data = torch.tensor([0.35], dtype=torch.float32)# 输出层self.linear2 = nn.Linear(2,2)self.linear2.weight.data=torch.tensor([[0.40,0.45],[0.50,0.55]])self.linear2.bias.data = torch.tensor([0.60], dtype=torch.float32)self.activation = nn.Sigmoid()def forward(self,input):x = self.linear1(input)x = self.activation(x)x = self.linear2(x)output = self.activation(x)return outputdef backward():model = Net()optimizer = optim.SGD(model.parameters(),lr=0.1,weight_decay = 0.01)for epoch in range(100):input = torch.tensor([0.05,0.10])true  = torch.tensor([0.01,0.99])predict = model.forward(input)mse = nn.MSELoss()loss = mse(predict,true)print(f"{epoch}",loss)optimizer.zero_grad()loss.backward()optimizer.step()backward()

1.2.2 L1正则化

L1 正则化通过在损失函数中添加权重参数的绝对值之和来约束模型的复杂度。

数学表示:

设模型的原始损失函数为 L(\theta),其中 \theta 表示模型权重参数,则加入 L1 正则化后的损失函数表示为:

其中:

  • L(\theta) 是原始损失函数。

  • \lambda 是正则化强度,控制正则化的力度。

  • |\theta_i| 是模型第i 个参数的绝对值。

  • \sum_{i} |\theta_i| 是所有权重参数的绝对值之和,这个项即为 L1 正则化项。

梯度更新:

在 L1 正则化下,梯度更新公式:

其中:

  • \eta 是学习率。

  • \nabla L(\theta_t) 是损失函数关于参数 \theta_t 的梯度。

  • \text{sign}(\theta_t) 是参数 \theta_t 的符号函数,表示当 \theta_t 为正时取值为 1,为负时取值为 -1,等于 0 时为 0。

因为 L1 正则化依赖于参数的绝对值,其梯度更新时不是简单的线性缩小,而是通过符号函数来直接调整参数的方向。

L1与L2对比:

  • L1 正则化 更适合用于产生稀疏模型,会让部分权重完全为零,适合做特征选择。

  • L2 正则化 更适合平滑模型的参数,避免过大参数,但不会使权重变为零,适合处理高维特征较为密集的场景。

import torch
import torch.nn as nn
import torch.optim as optimmodel = nn.Linear(5,1)loss_fun = torch.nn.MSELoss()optimizer = optim.SGD(model.parameters(),lr = 0.01)
for epoch in range(100):train_x = torch.tensor([[0.40,0.45,0.84,0.54,0.2],[0.50,0.55,0.92,0.34,0.6]])predict = model(train_x)target = torch.tensor([[0.5],[0.8]])# L1正则化项并将其加入到总损失中l1_lambda = 0.001l1_norm = sum(p.abs().sum() for p in model.parameters())loss  = loss_fun(predict,target) + l1_lambda*l1_normprint(loss)if model.weight.grad is not None:model.weight.grad.zero_()loss.backward()optimizer.step()

1.2.3 Dropout

Dropout 是一种在训练过程中随机丢弃部分神经元的技术。它通过减少神经元之间的依赖来防止模型过于复杂,从而避免过拟合。

nn.Dropout(p)

 参数:p:每一个神经元被丢弃的概率

x = torch.randint(0, 10, (5, 6), dtype=torch.float)# 每一个神经元有p的概率被丢弃
dropout = nn.Dropout(p=0.5)x = dropout(x)
print(x)
print(x.shape)
print(x==0)
# p不一定等于 死亡神经元占总神经元的比例
print(sum(sum(x==0))/(x.shape[0]*x.shape[1]))

1.2.4 简化模型

  • 减少网络层数和参数: 通过减少网络的层数、每层的神经元数量或减少卷积层的滤波器数量,可以降低模型的复杂度,减少过拟合的风险。

  • 使用更简单的模型: 对于复杂问题,使用更简单的模型或较小的网络架构可以减少参数数量,从而降低过拟合的可能性。

1.2.5 数据增强

通过对训练数据进行各种变换(如旋转、裁剪、翻转、缩放等),可以增加数据的多样性,提高模型的泛化能力。

1.2.6 早停

一种在训练过程中监控模型在验证集上的表现,并在验证误差不再改善时停止训练的技术。这样可避免训练过度,防止模型过拟合。

1.2.7 模型集成

通过将多个不同模型的预测结果进行集成,可以减少单个模型过拟合的风险。常见的集成方法包括投票法、平均法和堆叠法。

1.2.8 交叉验证

使用交叉验证技术可以帮助评估模型的泛化能力,并调整模型超参数,以防止模型在训练数据上过拟合。

2.批量标准化

2.1 实现过程

批量标准化的基本思路是在每一层的输入上执行标准化操作,并学习两个可训练的参数:缩放因子 \lambda 偏移量 \beta。

2.1.1 计算均值和方差

对于给定的神经网络层,假设输入数据为 \mathbf{x} = {x_1, x_2, \ldots, x_m},其中 m是批次大小。首先计算该批次数据的均值和方差。

2.1.2 标准化

使用计算得到的均值和方差对数据进行标准化,使得每个特征的均值为0,方差为1。

2.1.3 缩放和平移

标准化后的数据通常会通过可训练的参数进行缩放和平移,以恢复模型的表达能力。

 

2.1.4 标准化公式

其中,\gamma 和 \beta 是在训练过程中学习到的参数。

  • λ 和 β 是可学习的参数,它相当于对标准化后的值做了一个线性变换,λ 为系数,β 为偏置;

  • \epsilon通常指为 1e-5,避免分母为 0;

  • \mu_B 表示变量的均值;

  • \sigma_B^2 表示变量的方差;

2.2 训练和推理阶段

  • 训练阶段: 在训练过程中,均值和方差是基于当前批次的数据计算得到的。

  • 推理阶段: 在推理阶段,批量标准化使用的是训练过程中计算得到的全局均值和方差,而不是当前批次的数据。这些全局均值和方差通常会被保存在模型中,用于推理时的标准化过程。

2.3 BatchNorm

数据在经过 BN 层之后,无论数据以前的分布是什么,都会被归一化成均值为 β,标准差为 γ 的分布。

注意:BN 层不会改变输入数据的维度,只改变输入数据的的分布. 在实际使用过程中,BN 常常和卷积神经网络结合使用,卷积层的输出结果后接 BN 层。

API:

torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True)

 参数:

  • 由于每次使用的 mini batch 的数据集,所以 BN 使用移动加权平均来近似计算均值和方差,而 momentum 参数则调节移动加权平均值的计算;

  • affine = False 表示 \lambda=1,β=0,反之,则表示 γ 和 β 要进行学习;

  • BatchNorm2d 适用于输入的数据为 4D,输入数据的形状 [N,C,H,W]

    其中:N 表示批次,C 代表通道数,H 代表高度,W 代表宽度

由于每次输入到网络中的时小批量的样本,我们使用指数加权平均来近似表示整体的样本的均值和方差,其更新公式如下:

running_mean = momentum * running_mean + (1.0 – momentum) * batch_mean
running_var = momentum * running_var + (1.0 – momentum) * batch_var

batch_mean 和 batch_var 表示当前批次的均值和方差。而 running_mean 和 running_var 是近似的整体的均值和方差的表示。当我们进行评估时,可以使用该均值和方差对输入数据进行归一化。

x = torch.randint(0,10,(4,3,4,5)).float()
# 批量标准化
bn = nn.BatchNorm2d(num_features = x.shape[1],eps =1e-8,affine =True,momentum=0.9)
print(bn(x))

相关文章:

深度学习基础3

目录 1.过拟合与欠拟合 1.1 过拟合 1.2 欠拟合 1.2 解决欠拟合 1.2.1 L2正则化 1.2.2 L1正则化 1.2.3 Dropout 1.2.4 简化模型 1.2.5 数据增强 1.2.6 早停 1.2.7 模型集成 1.2.8 交叉验证 2.批量标准化 2.1 实现过程 2.1.1 计算均值和方差 2.1.2 标准化 2.1.3…...

靶机dpwwn-01

靶机下载地址:https://download.vulnhub.com/dpwwn/dpwwn-01.zip 信息收集 扫描靶机的IP地址 arp-scan -l 获得靶机的IP地址:192.168.200.130 查看靶机的服务类型,端口信息 nmap -sS -sV -T4 -A -p- 192.168.200.130 开启了22&#xf…...

Python毕业设计选题:基于django+vue的智慧社区可视化平台的设计与实现+spider

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 养老机构管理 业主管理 社区安防管理 社区设施管理 车位…...

大语言模型微调与 XTuner 微调实战

1 大语言模型微调 1.1 什么是微调 大语言模型微调(Fine-tuning of Large Language Models)是指在预训练的大型语言模型基础上,使用特定任务的数据进一步训练模型,以使其更好地适应和执行特定任务的过程,用于使LLM&am…...

数据结构-查找(四)总结与对比

查找算法总结 文章目录 查找算法总结一、查找的基本概念二、顺序查找法适用场景 三、分块查找法适用场景 四、折半查找法(Binary Search)适用场景 五、树型查找1. 二叉搜索树(BST)2. 平衡二叉树(AVL)3. 红黑…...

c++总复习

一、什么是 C 中的函数对象?它有什么特点? 在 C 中,函数对象(Function Object)也称为仿函数(Functor),它是一个类的实例,该类重载了函数调用运算符(),使得这个…...

AJAX一、axios使用,url组成(协议,域名,资源路径)查询参数和化简,错误处理,请求/响应报文,状态码,接口文档,

一、AJAX是什么 概念 &#xff1a; AJAX是一种与服务器&#xff08;后端&#xff09;通信的技术 二、请求库axios的基本用法 1导包 2使用 // 1. 发请求 axios({ url: 请求地址 }).then(res > { // 2.接收并使用数据 }) <body><p class"province"…...

Python学习笔记

MJ大神的Python课&#xff0c;课堂笔记 int 和float运算结果是 float除法&#xff08;/&#xff09;的结果是float整除&#xff08;//&#xff09;&#xff0c;向下取整(floor)int 和 int 进行整除&#xff08;//&#xff09;,得到的结果是int 绘制一个填充色边框色 import …...

开源 - Ideal库 - Excel帮助类,TableHelper实现(三)

书接上回&#xff0c;我们今天继续讲解实现对象集合与DataTable的相互转换。 01、把表格转换为对象集合 该方法是将表格的列名称作为类的属性名&#xff0c;将表格的行数据转为类的对象。从而实现表格转换为对象集合。同时我们约定如果类的属性设置了DescriptionAttribute特性…...

ceph手动部署

ceph手动部署 一、 节点规划 主机名IP地址角色ceph01.example.com172.18.0.10/24mon、mgr、osd、mds、rgwceph02.example.com172.18.0.20/24mon、mgr、osd、mds、rgwceph03.example.com172.18.0.30/24mon、mgr、osd、mds、rgw 操作系统版本&#xff1a; Rocky Linux release …...

macOS 开发环境配置与应用开发指南

macOS 开发环境配置与应用开发指南 macOS作为苹果公司推出的操作系统&#xff0c;因其稳定性、优雅的用户界面和强大的开发支持&#xff0c;已成为开发者和创意专业人士的首选平台之一。无论是开发iOS、macOS桌面应用&#xff0c;还是Web应用、跨平台程序&#xff0c;macOS都提…...

自动化是语法,智能化是语义与语用

自动化与智能化可以从语言学的角度来进行类比和探讨。 1. 自动化是语法 自动化可以类比为“语法”的部分&#xff0c;因为它关注的是操作过程的规则、结构和执行方式。语法是语言中关于词汇、句子结构和规则的系统&#xff0c;它提供了语言运作的框架和规范。类似地&#xff0c…...

基于DHCP,ACL的通信

该问题为华为的学习资料 1.首先把所有的PC机全部设置为DHCP 2.配置地址 3.ospf 4.dhcp 5.acl AR1 dhcp en interface GigabitEthernet0/0/0ip address 192.168.1.254 255.255.255.0 dhcp select global interface GigabitEthernet0/0/1ip address 10.1.12.1 255.255.255.…...

Unity跨平台基本原理

Unity跨平台基本原理 Unity跨平台基本原理微软的.Net是什么微软做 .Net平台的目的如何实现的.Net跨语言&#xff1f;总结 .Net Framework.Net Framework的体系结构CLR总结 如何实现的跨平台&#xff1f;.Net Core.Net FrameWork 到 .Net CoreMonoMono如何实现跨平台总结如何实现…...

基于 Python、OpenCV 和 PyQt5 的人脸识别上课打卡系统

大家好&#xff0c;我是Java徐师兄&#xff0c;今天为大家带来的是基于 Python、OpenCV 和 PyQt5 的人脸识别上课签到系统。该系统采用 Python 语言开发&#xff0c;开发过程中采用了OpenCV框架&#xff0c;Sqlite db 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强…...

IDEA的简易安装思路

IDEA(本身就是Java开发的)&#xff1a;是目前为止开发Java效率最高的工具&#xff0c;但正版收费……&#xff08;eclipse的话不好说&#xff0c;反正还是随主流吧&#xff09; 使用IDEA的前提&#xff1a;必须先安装JDK【否则直接使用IDEA工具来运行程序是无效的&#xff0c;它…...

【实战】在Koa.js中实现文件上传的接口 (本地存储)

目录 环境准备 使用 koa-body 中间件获取上传的文件 使用 Postman 测试 使用 koa-static 中间件生成图片链接 编写前端页面上传文件 文件上传是一个基本的功能&#xff0c;每个系统几乎都会有&#xff0c;比如上传图片、上传Excel等。那么在Node Koa应用中如何实现一个支持…...

flink学习(10)——allowedLateness/测道输出

allowedLateness(lateness: Time) 水印&#xff1a;短期延迟&#xff0c;达到条件后触发计算并且关闭窗口&#xff08;触发关闭同时进行&#xff09; 水印allowedLateness : 短期延迟 等待长期延迟效果 1、达到水印条件后&#xff0c;会触发窗口计算&#xff0c;但是不关闭窗口…...

微信小程序按字母顺序渲染城市 功能实现详细讲解

在微信小程序功能搭建中&#xff0c;按字母渲染城市会用到多个ES6的方法&#xff0c;如reduce&#xff0c;map&#xff0c;Object.entries()&#xff0c;Object.keys() &#xff0c;需要组合熟练掌握&#xff0c;才能优雅的处理数据完成渲染。 目录 一、数据分析 二、数据处理 …...

openjdk17 jvm 对象 内存溢出 在C++源码体现

##java大对象类 public class MiBigObject {private String f1;private String f2;private String f3;private String f4;private String f5;private String f6;private String f7;private String f8;private String f9;private String f10;private String f11;private String…...

【软考速通笔记】系统架构设计师⑧——系统质量属性与架构评估

文章目录 一、前言二、软件系统质量属性2.1 开发期质量属性2.2 运行期质量属性 三、质量属性场景描述四、系统架构评估方法4.1 方法分类4.2 软件架构分析方法4.3 架构权衡分析法4.4 成本效益分析法 一、前言 笔记目录大纲请查阅&#xff1a;【软考速通笔记】系统架构设计师——…...

YOLO系列论文综述(从YOLOv1到YOLOv11)【第5篇:YOLOv3——多尺度预测】

YOLOv3 1 摘要2 YOLOv32.1 相对于v2的改进2.2 网络架构2.3 多尺度预测2.4 YOLOv3结果 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv…...

HarmonyOS4+NEXT星河版入门与项目实战(25)------UIAbility启动模式(文档编辑案例)

文章目录 1、启动模式2、Specified启动模式实现步骤3、文档编辑案例1、文件创建2代码实现3、Statge 创建4、添加配置1、启动模式 Singleton启动模式: 每个 UIAbility 只存在一个实例,是默认的启动模式,任务列表中只会存在一个相同的 UIAbilityStandard启动模式: 每次启动 U…...

PyTorch张量运算与自动微分

PyTorch张量运算与自动微分 PyTorch由Facebook人工智能研究院于2017年推出&#xff0c;具有强大的GPU加速张量计算功能&#xff0c;并且能够自动进行微分计算&#xff0c;从而可以使用基于梯度的方法对模型参数进行优化&#xff0c;大部分研究人员、公司机构、数据比赛都使用P…...

在 Ubuntu 20.04 上使用 Lux 下载 Bilibili 视频的详细教程

在 Ubuntu 20.04 上使用 Lux 下载 Bilibili 视频的详细教程 在 Ubuntu 20.04 上使用 Lux 下载 Bilibili&#xff08;哔哩哔哩&#xff09;视频的完整和详细步骤如下&#xff0c;包括使用预编译二进制文件的安装方法&#xff1a; 1. 安装依赖 确保你的系统已安装 FFmpeg&…...

1.1 数据结构的基本概念

1.1.1 基本概念和术语 一、数据、数据对象、数据元素和数据项的概念和关系 数据&#xff1a;是客观事物的符号表示&#xff0c;是所有能输入到计算机中并被计算机程序处理的符号的总称。 数据是计算机程序加工的原料。 数据对象&#xff1a;是具有相同性质的数据元素的集合&…...

【NebulaGraph】深入了解查询语句(二)

【NebulaGraph】深入了解查询语句 1. NebulaGraph 查询语句概述 1. NebulaGraph 查询语句概述 文档&#xff1a;https://docs.nebula-graph.com.cn/3.8.0/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview/ NebulaGraph 的数据以点和边的形式存…...

Oracle—系统包使用

文章目录 系统包dbms_redefinition 系统包 dbms_redefinition 功能介绍&#xff1a;该包体可以实现将Oracle库下的表在线改为分区结构或者重新定义&#xff1b; 说明&#xff1a;在检查表是否可以重定义和开始重定义的过程中&#xff0c;按照表是否存在主键&#xff0c;参数 o…...

org.apache.commons.lang3包下的StringUtils工具类的使用

前言 相信平时在写项目的时候&#xff0c;一定使用到StringUtils.isEmpty()&#xff1b;StringUtils.isBlank();但是你真的了解他们吗&#xff1f; 也许你两个都不知道&#xff0c;也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外&#xff0c;并不知道还有isAnyEmpty/isNon…...

详细介绍Node.js的中间件及使用方法

在Node.js的生态中&#xff0c;中间件&#xff08;Middleware&#xff09;是一个不可或缺的概念&#xff0c;它为构建灵活而高效的应用程序提供了强大的支持。以下是对Node.js中间件的详细介绍&#xff1a; 中间件的概念与定义 中间件是一种软件架构的设计模式&#xff0c;用…...

VPC9527同步整流控制器,相对最大电压检测与强力自供电,与MP6908完全PIN TO PIN

VPC9527 是一款高性能的同步整流控制器,它兼容 CCM 和 DCM 两种模式,最大工作频率高达 700kHz;可 通过 SEL 引脚的逻辑电压来选择 400nS 或 800nS 两个关断检测的屏蔽时间;可通过 VLC 引脚来调整限压导通的 参数,以便与所选同步整流管的参数相匹配,获得适应的最优性能;它…...

【聚类】主成分分析 和 t-SNE 降维

1 主成分分析PCA PCA 是一种线性降维技术&#xff0c;旨在通过选择具有最大方差的特征方向&#xff08;称为主成分&#xff09;来压缩数据&#xff0c;同时尽可能减少信息损失。 1.1 原理 1.2 优缺点 from sklearn.decomposition import PCA import matplotlib.pyplot as plt…...

MyBatis框架-日志配置

MyBatis框架的日志配置 MyBatis作为一个封装好的ORM框架&#xff0c;其运行过程我们没有办法跟踪&#xff0c;为了让开发者MyBatis执行流程及执行步骤所完成的工作&#xff0c;MyBatis框架本身支持log4j日志框架&#xff0c;对运行的过程进行跟踪记录。我们只需对MyBatis进行相…...

【数据结构】哈希 ---万字详解

unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到log_2 N&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好 的查询是&#xff0c…...

Python Web 框架

Python 有多个强大的 Web 框架&#xff0c;每个框架都具有不同的特点和应用场景。根据开发者的需求&#xff08;如开发速度、灵活性、功能等&#xff09;&#xff0c;可以选择适合的框架。以下是一些常见的 Python Web 框架&#xff1a; 1. Django 简介&#xff1a;Django 是一…...

大模型翻译能力评测

1. 背景介绍 随着自然语言处理技术的飞速发展&#xff0c;机器翻译已经成为一个重要的研究领域。近年来&#xff0c;基于大模型的语言模型在机器翻译任务上取得了显著的进展。这些大模型通常具有数亿甚至数千亿的参数&#xff0c;能够更好地理解和生成自然语言。 但是&#xf…...

深度学习中的前向传播与损失函数

目录 ​编辑 前向传播&#xff1a;神经网络的推理过程 什么是前向传播&#xff1f; 前向传播的步骤 数学表达 代码示例&#xff1a;前向传播 损失函数&#xff1a;衡量预测与真实值的差异 损失函数的定义 损失函数的作用 常见的损失函数 代码示例&#xff1a;损失函…...

MySQL 复合查询

实际开发中往往数据来自不同的表&#xff0c;所以需要多表查询。本节我们用一个简单的公司管理系统&#xff0c;有三张表EMP,DEPT,SALGRADE 来演示如何进行多表查询。表结构的代码以及插入的数据如下&#xff1a; DROP database IF EXISTS scott; CREATE database IF NOT EXIST…...

Java程序调kubernetes(k8s1.30.7)core API简单示例,并解决403权限验证问题,即何进行进行权限授权以及验证

简单记录问题 一、问题描述 希望通过Java程序使用Kubernetes提供的工具包实现对Kubernetes集群core API的调用&#xff0c;但是在高版本上遇见权限验证问题4xx。 <dependency><groupId>io.kubernetes</groupId><artifactId>client-java</artifact…...

Java安全—原生反序列化重写方法链条分析触发类

前言 在Java安全中反序列化是一个非常重要点&#xff0c;有原生态的反序列化&#xff0c;还有一些特定漏洞情况下的。今天主要讲一下原生态的反序列化&#xff0c;这部分内容对于没Java基础的来说可能有点难&#xff0c;包括我。 序列化与反序列化 序列化&#xff1a;将内存…...

火鸟地方门户系统V8.5系统源码+搭建环境教程

一.介绍 火鸟地方门户系统V8.5源码 系统包含4端&#xff1a; PCH5小程序APP 二.搭建环境 系统环境&#xff1a;CentOS、 运行环境&#xff1a;宝塔 Linux 网站环境&#xff1a;Nginx 1.2.22 MySQL 5.6 PHP-7.4 常见插件&#xff1a;fileinfo &#xff1b; redis 三.测…...

深度学习:梯度下降法

损失函数 L&#xff1a;衡量单一训练样例的效果。 成本函数 J&#xff1a;用于衡量 w 和 b 的效果。 如何使用梯度下降法来训练或学习训练集上的参数w和b &#xff1f; 成本函数J是参数w和b的函数&#xff0c;它被定义为平均值&#xff1b; 损失函数L可以衡量你的算法效果&a…...

Git常用命令

Git是一个优秀的代码版本管理工具&#xff0c;其常用命令包括但不限于以下这些&#xff1a; 一、初始化与配置 git init&#xff1a;在当前目录初始化一个新的Git仓库。git clone [url]&#xff1a;克隆远程仓库到本地。git config&#xff1a;配置Git的各种选项和变量&#…...

css预处理器scss/sass

一、css预处理器sass的诞生 众所周知css并不能算是一们真正意义上的“编程”语言&#xff0c;它本身无法未完成像其它编程语言一样的嵌套、继承、设置变量等工作&#xff0c;仅仅只能用来编写网站样式&#xff0c;如此一来代码就会百年的臃肿难以维护。为了解决css的不足&#…...

磁盘/系统空间占满导致黑屏死机无法开机的解决办法

文章目录 起因具体操作1.重启虚拟机&#xff0c;一直按CtrlShitf进入GRUP界面2.选“Ubuntu高级选项”并回车选择第二个&#xff0c;recovery mode![请添加图片描述](https://i-blog.csdnimg.cn/direct/201f9784c203406d802d24b39dc2d4a3.png)3.4.命令查看磁盘情况5.查找和删除文…...

API 与 SDK 之间的区别

API 与 SDK 之间的区别 很多人在软件开发中经常会分不清 SDK 与 API &#xff0c;今天就来浅谈一下两者之间的区别。 直白地说&#xff0c;SDK 包含了 API &#xff0c;是一套完整的&#xff0c;能完成更多功能的工具包&#xff0c;无论你想获取什么样的信息&#xff0c;SDK …...

Lua的环境与热更

一、global_State,lua_State与G表 Lua支持多线程环境&#xff0c;使用 lua_State 结构来表示一个独立的 Lua 线程&#xff08;或协程&#xff09;。每个线程都需要一个独立的全局环境。而lua_State 中的l_G指针&#xff0c;指向一个global_State结构&#xff0c;这个就是我们常…...

java八股-分布式服务的接口幂等性如何设计?

文章目录 接口幂等token Redis分布式锁 原文视频链接&#xff1a;讲解的流程特别清晰&#xff0c;易懂&#xff0c;收获巨大 【新版Java面试专题视频教程&#xff0c;java八股文面试全套真题深度详解&#xff08;含大厂高频面试真题&#xff09;】 https://www.bilibili.com/…...

鸿蒙学习使用模拟器运行应用(开发篇)

文章目录 1、系统类型和运行环境要求2、创建模拟器3、启动和关闭模拟器4、安装应用程序包和上传文件QA:在Windows电脑上启动模拟器&#xff0c;提示未开启Hyper-V 1、系统类型和运行环境要求 Windows 10 企业版、专业版或教育版及以上&#xff0c;且操作系统版本不低于10.0.18…...

基于 FFmpeg/Scrcpy 框架构建的一款高性能的安卓设备投屏管理工具-供大家学习研究参考

支持的投屏方式有:USB,WIFIADB,OTG,投屏之前需要开启开发者选项里面的USB调试。 主要功能有: 1.支持单个或多个设备投屏。 2.支持键鼠操控。 3.支持文字输入。 4.支持共享剪切板(可复制粘贴电脑端文字到手机端,也可导出手机剪切板到电脑端)。 5.支持视频图片上传,可单…...