机器学习——损失函数、代价函数、KL散度
🌺历史文章列表🌺
- 机器学习——损失函数、代价函数、KL散度
- 机器学习——特征工程、正则化、强化学习
- 机器学习——常见算法汇总
- 机器学习——感知机、MLP、SVM
- 机器学习——KNN
- 机器学习——贝叶斯
- 机器学习——决策树
- 机器学习——随机森林、Bagging、Boosting、集成学习
- 机器学习——聚类算法(Kmeans、GMM-使用EM优化)
- 机器学习——降维
文章目录
- 损失函数
- 一、回归问题中的损失函数
- 1. 均方误差(Mean Squared Error, MSE)
- 2. 平均绝对误差(Mean Absolute Error, MAE)
- 3. 对数余弦损失(Log-Cosh Loss)
- 4. Huber 损失(Huber Loss)
- 5. 平均平方对数误差(Mean Squared Logarithmic Error, MSLE)
- 总结
- 二、分类问题中的损失函数
- 1. 0-1 损失(0-1 Loss)
- 2. 对数损失(Log Loss)或交叉熵损失(Cross-Entropy Loss)
- 3. Focal 损失(Focal Loss)
- 4. Hinge 损失(合页损失)
- 5. Kullback-Leibler 散度(KL Divergence)
- 总结
- 代价函数
- 1. 回归问题中的代价函数
- 2. 分类问题中的代价函数
- 损失函数和代价函数的选择
- 1. 如何选择适当的损失函数?
- 2. 损失函数和代价函数的优化
- KL散度
- 描述
- KL散度的特点
- KL散度的常见应用场景
- 1. 变分自编码器(Variational Autoencoder, VAE)中的损失函数
- 2. 分类问题中的交叉熵损失
- 3. 强化学习中的策略优化
- 4. 生成模型中的正则化项
- 5. 多任务学习中的权衡损失
- 6. T-SNE
- 总结
在机器学习中,损失函数和代价函数是评估模型性能的重要工具。
- 损失函数衡量单个样本的预测值与真实值之间的差异。
- 代价函数则是所有样本的损失的平均值或总和,用于衡量模型在整个数据集上的表现。
不同的任务和模型选择不同的损失函数和代价函数,以反映其特定的优化目标。
损失函数
一、回归问题中的损失函数
1. 均方误差(Mean Squared Error, MSE)
定义:

- 描述:MSE 衡量的是预测值和真实值之间的平方误差的平均值。对较大的误差会进行更大的惩罚,因此它对异常值(outliers)非常敏感。
- 应用场景:线性回归、岭回归等模型的损失函数。
- 优点:简单易于理解,容易求导和计算。
- 缺点:对异常值敏感,可能导致模型被少数异常样本主导。
2. 平均绝对误差(Mean Absolute Error, MAE)
定义:

- 描述:MAE 衡量的是预测值和真实值之间的绝对误差的平均值。它对每个误差的惩罚是线性的,因此对异常值的惩罚不如 MSE 严重。
- 应用场景:在对异常值不敏感的回归任务中使用。
- 优点:对异常值不敏感,能够更加稳定地反映模型性能。
- 缺点:在优化过程中,绝对值函数不可导,求解困难。
3. 对数余弦损失(Log-Cosh Loss)
定义:

- 描述:对数余弦损失是Huber 损失的变体,它的行为类似于 MAE,同时对大误差有更小的增长率。
- 应用场景:适用于异常值影响较大的回归任务。
- 优点:具有平滑性,易于求导,对小误差敏感而对大误差鲁棒。
- 缺点:相比其他损失函数计算复杂度较高。
4. Huber 损失(Huber Loss)
定义:

- 描述:Huber 损失是MSE 和 MAE 的折中。对于小误差,使用 MSE;对于大误差,使用 MAE,从而对异常值有一定的鲁棒性。
- 应用场景:回归问题中存在异常值,但又不希望过于忽略异常值的场景。
- 优点:对小误差敏感,同时对大误差具有一定的抗干扰性。
- 缺点:参数 ( δ \delta δ) 需要手动调节,不同数据集效果不同。
5. 平均平方对数误差(Mean Squared Logarithmic Error, MSLE)
定义:

- 描述:MSLE 用于处理目标值差异较大且有显著指数增长趋势的情况。它更关注相对误差,而非绝对误差。
- 应用场景:如人口增长预测、市场销量预测等场景。
- 优点:对大数值的预测更稳定,对目标值的比例关系有更好的衡量。
- 缺点:当目标值非常小时,惩罚效果不明显。
总结
| 损失函数 | 描述 | 应用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| 均方误差 (MSE) | 衡量预测值和真实值之间平方误差的平均值,对较大误差进行更大惩罚。 | 线性回归、岭回归等 | 简单易于理解,容易求导。 | 对异常值敏感。 |
| 平均绝对误差 (MAE) | 衡量预测值和真实值之间绝对误差的平均值。 | 对异常值不敏感的回归任务 | 对异常值不敏感,反映模型性能更稳定。 | 优化困难,绝对值函数不可导。 |
| 对数余弦损失 (Log-Cosh) | Huber 损失的变体,既能捕捉小误差,也对大误差有更小的增长率。 | 异常值影响较大的回归任务 | 平滑性好,易于求导,适应大误差和小误差。 | 计算复杂度高。 |
| Huber 损失 (Huber Loss) | 结合MSE和MAE,小误差时使用 MSE,大误差时使用 MAE,平衡异常值的影响。 | 存在异常值但不希望完全忽略的场景 | 对小误差敏感,对大误差有抗干扰性。 | 需调节参数 (delta)。 |
| 平均平方对数误差 (MSLE) | 衡量目标值差异大且有指数增长趋势的情况,关注相对误差而非绝对误差。 | 人口增长预测、市场销量预测等 | 对大数值预测更稳定,适应有比例关系的数据。 | 对极小值目标效果不佳。 |
二、分类问题中的损失函数
1. 0-1 损失(0-1 Loss)
定义:

- 描述:0-1 损失表示分类是否正确,0 为正确分类,1 为错误分类。它无法直接用于模型优化,只能用于评价模型性能。
- 应用场景:模型性能的评估,如准确率(Accuracy)的计算。
- 优点:简单直观,能够清晰判断分类是否正确。
- 缺点:不可导,无法用于梯度优化。
2. 对数损失(Log Loss)或交叉熵损失(Cross-Entropy Loss)

- 描述:交叉熵损失衡量的是预测分布和真实分布之间的距离。在二分类与 Sigmoid 函数结合;在多分类与 Softmax 函数结合。
- 应用场景:广泛用于逻辑回归、神经网络等分类任务。
- 优点:能够很好地度量概率分布之间的差异,梯度计算简单。
- 缺点:对数据不平衡较为敏感。
3. Focal 损失(Focal Loss)
定义:

注:t 是该样本的真实类别标签
- 描述:Focal 损失是对交叉熵损失的改进,用于解决类别不平衡问题。通过调节参数 ( γ \gamma γ ) 和 ( α \alpha α ),它增加了对困难样本的关注,降低了对易分类样本的影响。
- 应用场景:目标检测中的单阶段检测器(如 RetinaNet),以及其他类别不平衡的分类问题。
- 优点:有效解决类别不平衡问题,增强模型对困难样本的关注。
- 缺点:参数选择复杂,训练时间较长。
4. Hinge 损失(合页损失)

- 描述:Hinge 损失用于支持向量机(SVM)中。它在样本被正确分类且间隔大于 1 时,损失为 0;否则损失为 1。旨在最大化样本的分类间隔。
- 应用场景:线性支持向量机、核支持向量机等。
- 优点:有助于最大化分类间隔,提高模型的泛化能力。
- 缺点:对于误差大的样本损失增长过快。
5. Kullback-Leibler 散度(KL Divergence)
定义:

- 描述:KL 散度衡量两个概率分布之间的差异,常用于无监督学习中的聚类分析。
- 应用场景:概率模型的优化,如变分自编码器(VAE)、生成对抗网络(GAN)中的判别模型。
- 优点:对概率分布之间的微小差异非常敏感。
- 缺点:对稀疏分布的概率模型不稳定。
总结
| 损失函数 | 描述 | 应用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| 0-1 损失 (0-1 Loss) | 分类正确为 0,错误为 1,用于衡量分类是否正确。 | 准确率等分类性能评估 | 简单直观。 | 不可导,无法用于优化。 |
| 交叉熵损失 (Cross-Entropy) | 衡量预测分布和真实分布之间的距离,二分类结合 Sigmoid,多分类结合 Softmax。 | 逻辑回归、神经网络等分类任务 | 很好地衡量概率分布差异,梯度计算简单。 | 对数据不平衡敏感。 |
| Focal 损失 (Focal Loss) | 交叉熵的改进,通过调节 ( gamma ) 和 ( alpha ),增加对困难样本的关注,减少易分类样本影响,解决类别不平衡问题。 | 类别不平衡问题,如目标检测 (RetinaNet) | 增强对困难样本的关注,解决类别不平衡。 | 参数选择复杂,训练时间较长。 |
| Hinge 损失 (合页损失) | 用于 SVM,正确分类且间隔大于 1 时损失为 0,旨在最大化分类间隔。 | 线性 SVM、核 SVM | 提高泛化能力,有助于最大化分类间隔。 | 对误差大的样本损失增长快。 |
| KL 散度 (KL Divergence) | 衡量两个概率分布的差异,常用于无监督学习中的聚类分析。 | 概率模型优化,如 VAE、GAN | 对概率分布的差异敏感。 | 对稀疏分布不稳定。 |
代价函数
代价函数是损失函数在整个训练集上的平均或总和,用于衡量模型在整个数据集上的表现。
代价函数 = 所有样本的损失函数的平均值或总和。因此,代价函数通常是通过对每个样本的损失函数进行求和或求平均得到的。
1. 回归问题中的代价函数
均方误差代价函数(Cost Function for MSE):

- 描述:均方误差代价函数用于衡量模型预测值与真实值之间的总体误差。
- 应用场景:线性回归、岭回归等回归任务。
2. 分类问题中的代价函数
对数损失代价函数(Cost Function for Log Loss):

- 描述:对数损失代价函数用于二分类任务,衡量模型预测概率与真实分布之间的差异。
- 应用场景:逻辑回归、神经网络的二分类问题。
损失函数和代价函数的选择
1. 如何选择适当的损失函数?
- 回归问题:
- 数据中存在异常值时,可以选择 MAE 或 Huber 损失。
- 如果异常值较少、误差分布相对均匀,【对大误差容忍度低时】可以选择 MSE。
- 数据有显著的指数增长趋势时,选择 MSLE。
MAE 和 Huber 损失减少异常值对损失和模型的过度影响,所以适合存在较多异常值的情况。它们的目标是在存在异常值的情况下,保持模型对大多数数据的稳定性和准确性。
- 分类问题:
- 二分类问题:常用 交叉熵损失。
- 多分类问题:使用 Softmax + 交叉熵损失。
- 类别不平衡时:选择 Focal 损失。
2. 损失函数和代价函数的优化
- 梯度下降法:用于最小化代价函数,找到模型参数的最优解。
- 正则化:在代价函数中加入正则化项(L1 或 L2)防止模型过拟合。
总结来说,损失函数和代价函数是机器学习模型优化的核心工具,选择合适的损失函数能够帮助模型更好地学习数据的特性,并提高模型的性能和鲁棒性。
KL散度
描述
KL散度是一种用于衡量两个概率分布之间差异的度量。在信息论中,它也称为相对熵,用于表达当我们用分布 ( Q Q Q ) 来近似真实分布 ( P P P ) 时,所损失的信息量。

KL散度的特点
KL 散度的三个性质:非负性、非对称性和无界性。
-
非负性:
KL 散度始终非负,( D K L ( P ∥ Q ) ≥ 0 D_{KL}(P \parallel Q) \geq 0 DKL(P∥Q)≥0 ),并且仅当 ( P = Q P = Q P=Q ) 时,KL 散度为 0。这意味着两个分布越相似,KL 散度越小。当两个分布完全相同时,KL 散度为零,即没有信息损失。 -
非对称性:
KL 散度不是对称的,( D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P D_{KL}(P \parallel Q) \neq D_{KL}(Q \parallel P DKL(P∥Q)=DKL(Q∥P) ),因此它并不是一个真正的距离度量。KL 散度衡量的是使用分布 ( Q Q Q ) 来近似分布 ( P P P ) 的信息损失,因此方向性很重要,交换两个分布后,信息损失会不同。 -
无界性:
KL 散度可以趋向无穷大,特别是在 ( Q ( i ) = 0 Q(i) = 0 Q(i)=0 ) 且 ( P ( i ) > 0 P(i) > 0 P(i)>0 ) 的情况下。因为 ( log ( 0 ) \log(0) log(0) ) 趋于负无穷,这意味着如果 ( Q Q Q ) 对某个事件的概率估计为零,而 ( P P P ) 认为这个事件是可能的,那么使用 ( Q Q Q ) 来近似 ( P P P ) 的信息损失会非常大,导致 KL 散度无限大。
KL散度的常见应用场景
KL散度常在处理概率分布的模型中作为损失函数的一部分。通过在损失函数中加入KL散度,模型可以在多个任务中有效地优化预测分布与真实分布之间的差异。以下是KL散度作为损失函数一部分的几种常见应用:
1. 变分自编码器(Variational Autoencoder, VAE)中的损失函数
在VAE中,损失函数包含两部分:
- 重构误差:衡量重建的输出和输入数据的差异(通常是均方误差或二元交叉熵)。
- KL散度:衡量潜在变量的后验分布与先验分布(通常是标准正态分布) 之间的差异。

KL散度项确保潜在空间的分布接近于标准正态分布,从而提高生成数据的连续性和多样性。
2. 分类问题中的交叉熵损失
分类问题中的交叉熵损失实际上可以看作是KL散度的一种形式。在分类问题中,真实标签通常表示为one-hot向量,模型输出的则是一个预测概率分布。最小化交叉熵损失就是最小化真实分布和预测分布之间的KL散度。

由于真实分布 ( P ) 是one-hot形式,所以 H( P ) 是常数,最小化交叉熵损失等价于最小化KL散度。
3. 强化学习中的策略优化
在强化学习中,KL散度可以作为策略更新中的约束,确保新策略 ( π’ ) 和旧策略 ( π ) 不偏离太远。这种方法通过将KL散度作为损失函数的一部分进行优化,以确保策略的平稳更新。
在这种情况下,目标是通过最小化以下损失函数进行策略更新:

4. 生成模型中的正则化项
KL散度也常用于生成对抗网络(GAN)和其他生成模型中的正则化项。通过引入KL散度,模型可以保持生成分布与某个目标分布的接近度。这通常用于引导生成样本的多样性和稳定性。
5. 多任务学习中的权衡损失
在某些多任务学习场景中,KL散度可以用来衡量某一任务的输出分布与其他任务输出分布的差异,从而引入额外的正则化约束,以便各任务在共享网络中的学习互不冲突。
6. T-SNE
总结
KL散度是一种广泛应用于机器学习和深度学习中的度量工具,尤其是在涉及概率分布的场景中。其主要用于衡量模型预测的分布与真实分布的差异,并通过最小化KL散度来优化模型表现。具体应用场景包括:
- 变分自编码器中的潜在分布优化
- 分类任务中的交叉熵损失
- 强化学习中的策略更新约束
- 生成模型中的分布正则化
通过将KL散度引入损失函数,模型可以在复杂任务中更好地平衡生成质量、分布匹配以及策略优化的需求。
相关文章:
机器学习——损失函数、代价函数、KL散度
🌺历史文章列表🌺 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…...
首次超越扩散模型和非自回归Transformer模型!字节开源RAR:自回归生成最新SOTA!
文章链接:https://arxiv.org/pdf/2411.00776 项目链接:https://yucornetto.github.io/projects/rar.html 代码&模型链接:https://github.com/bytedance/1d-tokenizer 亮点直击 RAR(随机排列自回归训练策略)&#x…...
C语言最简单的扫雷实现(解析加原码)
头文件 #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 #include <stdio.h> #include <stdlib.h> #include <time.h> #define numlei 10do while可以循环玩 两个板子,内板子放0,外板子放* set函数初始化两个板子 …...
20. 类模板
一、什么是类模板 类模板用于建立一个通用类,类中的成员数据类型可以不具体指定,用一个虚拟的类型来代替。它的语法格式如下: template<typename T>类模板与函数模板相比主要有两点区别:1) 类模板没有自动类型推导的方式。…...
SSL证书以及实现HTTP反向代理
注意: 本文内容于 2024-11-09 19:20:07 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:SSL证书以及实现HTTP反向代理。感谢您的关注与支持! 之前写的HTTP反向代理工具&…...
多种算法解决组合优化问题平台
🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月11日7点12分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17302099790265&uidef7618fa204346ff9…...
【笔记】LLC电路工作频点选择 2-1 输出稳定性的限制
LLC工作模式的分析参考了:现代电力电子学,电力出版社,李永东 1.LLC电路可以选择VCS也可以选择ZVS 1.1选择ZCS时,开关管与谐振电感串联后,与谐振电容并联: 1.2选择ZVS时,开关管仅仅安装在谐振电…...
Linux系统程序设计--2. 文件I/O
文件I/O 标准C的I/O FILE结构体 下面只列出了5个成员 可以观察到,有些函数没有FILE类型的结构体指针例如printf主要是一些标准输出,因为其内部用到了stdin,stdout,stderr查找文件所在的位置:find \ -name stat.h查找头文件所…...
右值引用——C++11新特性(一)
目录 一、右值引用与移动语义 1.左值引用与右值引用 2.移动构造和移动赋值 二、引用折叠 三、完美转发 一、右值引用与移动语义 1.左值引用与右值引用 左值:可以取到地址的值,比如一些变量名,指针等。右值:不能取到地址的值…...
JavaScript 观察者设计模式
观察者模式:观察者模式(Observer mode)指的是函数自动观察数据对象,一旦对象有变化,函数就会自动执行。而js中最常见的观察者模式就是事件触发机制。 ES5/ES6实现观察者模式(自定义事件) - 简书 先搭架子 要有一个对象ÿ…...
鸿蒙进阶篇-网格布局 Grid/GridItem(二)
hello大家好,这里是鸿蒙开天组,今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem,上一篇博文我们已经学习了固定行列、合并行列和设置滚动,这一篇我们将继续学习Grid的用法,实现翻页滚动、自定义滚动条样式&…...
数据仓库之 Atlas 血缘分析:揭示数据流奥秘
Atlas血缘分析在数据仓库中的实战案例 在数据仓库领域,数据血缘分析是一个重要的环节。血缘分析通过确定数据源之间的关系,以及数据在处理过程中的变化,帮助我们更好地理解数据生成的过程,提高数据的可靠性和准确性。在这篇文章中…...
AndroidStudio-滚动视图ScrollView
滚动视图 滚动视图有两种: 1.ScrollView,它是垂直方向的滚动视图;垂直方向滚动时,layout_width属性值设置为match_parent,layout_height属性值设置为wrap_content。 例如: (1)XML文件中: <?xml ve…...
嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波
引言:本内容主要用作于学习巩固嵌入式硬件内容知识,用于想提升下述能力,针对学习STM32与DAC0832产生波形以及波形转换,对于硬件的降压和对于前面硬件篇的实际运用,针对仿真的使用,具体如下: 设…...
ElasticSearch的Python Client测试
一、Python环境准备 1、下载Python安装包并安装 https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe 2、安装 SDK 参考ES官方文档: https://www.elastic.co/guide/en/elasticsearch/client/index.html python -m pip install elasticsearch一、Client 代…...
【eNSP】企业网络架构链路聚合、数据抓包、远程连接访问实验(二)
一、实验目的 网络分段与VLAN划分: 通过实验了解如何将一个大网络划分为多个小的子网(VLAN),以提高网络性能和安全性。 VLAN间路由: 学习如何配置VLAN间的路由,使不同VLAN之间能够通信。 网络设备配置&am…...
独立站 API 接口的性能优化策略
一、缓存策略* 数据缓存机制 内存缓存:利用内存缓存系统(如 Redis 或 Memcached)来存储频繁访问的数据。例如,对于商品信息 API,如果某些热门商品的详情(如价格、库存、基本描述等)被大量请求…...
不一样的CSS(一)
目录 前言: 一、规则图形 1.介绍: 2.正方形与长方形(实心与空心) 2.1正方形: 2.2长方形 3.圆形与椭圆形(空心与实心) 3.1圆形与椭圆形 4.不同方向的三角形 4.1原理 4.2边框属性 5.四…...
题目:Wangzyy的卡牌游戏
登录 - XYOJ 思路: 使用动态规划,设dp[n]表示当前数字之和模三等于0的组合数。 状态转移方程:因为是模三,所以和的可能就只有0、1、2。等号右边的f和dp都表示当前一轮模三等于k的组合数。以第一行为例:等号右边表示 j转…...
国外云服务器高防多少钱一年?
国外云服务器高防多少钱一年?入门级高防云主机:这类主机通常具有较低的防御峰值,如30G或60G,价格相对较低。例如,30G峰值防御的高防云主机年费可能在2490元左右,而60G峰值防御的则可能在5044元左右。中等防…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...



