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

深度学习500问——Chapter07:生成对抗网络(GAN)(2)

文章目录

7.2 GAN的生成能力评价

7.2.1 如何客观评价GAN的生成能力

7.2.2 Inception Score

7.2.3 Mode Score

7.2.5 Wasserstein distance

7.2.6  Fréchet Inception Distance (FID)

7.2.7 1-Nearest Neighbor classifier

7.2.8 其他评价方法

7.3 其他常见的生成式模型有哪些

7.3.1 什么是自回归模型:pixelRNN于pixelCNN

7.3.2 什么是VAE

7.4 GAN的改进和优化

7.4.1 如何生成指定类型的图像——条件GAN

7.4.2 CNN与GAN——DCGAN

7.4.3 如何理解GAN中的输入随机噪声

7.4.4 GAN为什么容易训练崩溃

7.4.5 WGAN如何解决训练崩溃问题

7.4.6 WGAN-GP:带有梯度正则的WGAN

7.4.7 LSGAN

7.4.8 如何尽量避免GAN的训练崩溃问题


7.2 GAN的生成能力评价

7.2.1 如何客观评价GAN的生成能力

最常见的评价GAN的方法就是主观评价。主观评价需要花费大量人力物力,且存在以下问题:

  • 评价带有主观色彩,有些bad case没看到很容易造成误判。
  • 如果一个GAN过拟合了,那么生成的样本会非常真实,人类主观评价得分会非常高,可是这并不是一个好的GAN。

因此,就有许多学者提出了GAN的客观评价方法。

7.2.2 Inception Score

对于一个在ImageNet训练良好的GAN,其生成的样本丢给Inception网络进行测试的时候,得到的判别概率应该具有如下特性:

  • 对于同一个类别的图像,其输出的概率分布应该趋向于一个脉冲分布。可以保证生成样本的准确性。
  • 对于所有类别,其输出的概率分布应该趋向于一个均匀分布,这样才不会出现mode dropping等,可以保证生成样本的多样性。

因此,可以设计如下指标:

IS(P_g)=e^{E_{x\sim P_g}[KL(p_M(y|x)\Vert{p_M(y)})]}

根据前面分析,如果是一个训练良好的GAN,p_M(y|x)趋近于脉冲分布,p_M(y)趋近于均匀分布。二者KL散度会很大。Inception Score自然就高。实际实验表明,Inception Score和人的主观判别趋向一致。IS的计算没有用到真实数据,具体值取决于模型M的选择。

特点:可以一定程度上衡量生成样本的多样性和准确性,但是无法检测过拟合。Mode Score也是如此。不推荐在和ImageNet数据集差别比较大的数据上使用。

7.2.3 Mode Score

Mode Score作为Inception Score的改进版本,添加了关于生成样本和真实样本预测的概率分布相似性度量的一项。具体公式如下:

MS(P_g)=e^{E_{x\sim P_g}[KL(p_M(y|x)\Vert{p_M(y)})-KL(p_M(y)\Vert p_M(y^*))]}

对于kernel MMD值的计算,首先需要选择一个核函数k,这个核函数把样本映射到再生希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS),RKHS相比于欧几里得空间有许多优点,对于函数内积的计算是完备的。将上述公式展开即可得到下面的计算公式:

MMD^2(P_r,P_g)\\=E_{x_r,x_r{'}\sim{P_r},x_g,x_g{'}\sim{P_g}}[k(x_r,x_r{'})-2k(x_r,x_g)+k(x_g,x_g{'})]

MMD值越小,两个分布越接近。

特点:可以一定程度上衡量模型生成图像的优劣性,计算代价小。推荐使用。

7.2.5 Wasserstein distance

​ Wasserstein distance在最优传输问题中通常也叫做推土机问题。这个距离的介绍在WGAN中有详细讨论。公式如下:

WD(P_r,P_g)=min_{\omega\in\mathbb{R}^{m\times n}}\Sigma_{i=1}^n\Sigma_{i=1}^m\omega_{ij}d(x_i^r,x_j^g)

s.t.\sum_{i=1}^{m} w_{ij} = p_r(x^r_i), \forall i; \sum_{j=1}^{n} w_{ij} = p_{g}(x^g_j),\forall j

Wasserstein distanced可以衡量两个分布之间的相似性。距离越小,分布越相似。

特点:如果特征空间选择合适的话,会有一定的效果。但是计算复杂度为O(n^3)太高。

7.2.6  Fréchet Inception Distance (FID)

FID距离计算真实样本、生成样本在特征空间之间的距离。首先利用Inception网络来提取特征,然后使用高斯模型对特征空间进行建模。根据高斯模型的均值和协方差来进行距离计算。具体公式如下:

FID(\mathbb P_r,\mathbb P_g)=\lVert\mu_r-\mu_g\rVert+Tr(C_r+C_g-2(C_rC_g)^{1/2})

\mu ,C分别代表协方差和均值。

特点:尽管只计算了特征空间的前两阶矩,但是鲁棒,且计算高效。

7.2.7 1-Nearest Neighbor classifier

使用留一法,结合1-NN分类器(别的也行)计算真实图片,生成图像的精度。如果二者接近,则精度接近50%,否则接近0%。对于GAN的评价问题,作者分别用正样本的分类精度,生成样本的分类精度去衡量生成样本的真实性、多样性。

  • 对于真实样本x_r,进行1-NN分类的时候,如果生成的样本越真实,则真实样本空间\mathbb R将被生成的样本x_g包围,那么x_r的精度会很低。
  • 对于生成的样本x_g,进行1-NN分类的时候,如果生成的样本多样性不足,由于生成的样本聚在几个mode,则x_g很容易就和x_r区分,导致精度会很高。

特点:理想的度量指标,且可以检测过拟合。

7.2.8 其他评价方法

AIS、KDE方法也可以用于评价GAN,但这些方法不是model agnostic metrics。也就是说,这些评价指标的计算无法只利用:生成的样本、真实的样本来计算。

7.3 其他常见的生成式模型有哪些

7.3.1 什么是自回归模型:pixelRNN于pixelCNN

自回归模型通过对图像数据的概率分布p_{data}(x)进行显式建模,并利用极大似然估计优化模型。具体如下:

p_{data}(x)=\prod_{i=1}^np(x_i|x_1,x_2,...,x_{i-1})

上述公式很好理解,给定x_1,x_2,...,x_{i-1}条件下,所有p(x_i)的概率乘起来就是图像数据的分布。如果使用RNN对上述依然关系建模,就是pixelRNN。如果使用CNN,则是pixelCNN。具体如下[5]:

显然,不论是对于pixelCNN还是pixelRNN,由于像素值是一个个生成的。速度会很慢。语音领域大火的WaveNet就是一个典型的自回归模型。

7.3.2 什么是VAE

PixelCNN/RNN定义了一个易于处理的密度函数,我们可以直接优化训练数据的似然;对于变分自编码器我们将定义一个不易处理的密度函数,通过附加的隐变量z对密度函数进行建模。VAE原理图如下[6]:

在VAE中,真实样本X通过神经网络计算出均值方差(假设隐变量服从正态分布),然后通过采样得到采样变量Z并进行重构。VAE和GAN均是学习了隐变量z到真实数据分布的映射。但是和GAN不同的是:

  • GAN的思路比较粗暴,使用一个判别器去度量分布转换模块(即生成器)生成分布与真实数据分布的距离。
  • VAE则没有那么直观,VAE通过约束隐变量z服从正态分布以及重构数据实现了分布转换映射X=G(z)

生成式模型对比:

  • 自回归模型通过对概率分布显式建模来生成数据。
  • VAE和GAN均是:假设隐变量z服从某种分布,并学习一个映射X=G(z),实现隐变量分布z与真实数据分布p_{data}(x)的转换。
  • GAN使用判别器去度量映射X=G(z)的优势,而VAE通过隐变量z与标准正态分布的KL散度和重构误差去度量。

7.4 GAN的改进和优化

7.4.1 如何生成指定类型的图像——条件GAN

条件生成对抗网络(CGAN,Conditional Generative Adversarial Networks)作为一个GAN的改进,其一定程度上解决了GAN生成结果的不确定性。

如果在Mnist数据集上训练原始GAN,GAN生成的图像是完全不确定的,具体生成的是数字1,还是2,还是几,根本不可控。为了让生成的数字可控,我们可以把数据集做一个切分,把数字0~9的数据集分别拆分开训练9个模型,不过这样太麻烦了,也不现实。因为数据集拆分不仅仅是分类麻烦,更主要在于,每一个类别的样本少,拿去训练GAN很有可能导致欠拟合。因此,CGAN应运而生了。

我们先看一下CGAN的网络结构:

从结构图中可以看到,对于生成器Generator,其输入不仅仅是随机噪声的采样z,还有欲生成图像的标签信息。比如对mnist数据生成,就是一个one-hot向量,某一维度为1则表示生成某个数字的图片。同样地,判别器的输入也包括样本的标签。这样就使得判别器核生成器可以学习到样本和标签之间的联系。

Loss如下:

\mathop {\min }\limits_G \mathop {\max }\limits_D V(D,G) \\ = {\rm E}{x\sim{p{data}(x)}}[\log D(x|y)] + {\rm E}_{z\sim{p_z}(z)}[\log (1 - D(G(z|y)))]

Loss设计和原始GAN基本一致,只不过生成器、判别器的输入数据是一个条件分布。在具体编程实现时只需要对随机噪声采样z和输入条件y做一个级联即可。

7.4.2 CNN与GAN——DCGAN

前面我们聊的GAN都是基于简单的神经网络构建的。可是对于视觉问题,如果使用原始的基于DNN的GAN,则会出现许多问题。如果输入GAN的随机噪声为100维的随机噪声,输出图像为 256\times 256大小。也就是说,要将100维的信息映射为65536维。如果单纯用DNN来实现,那么整个模型参数会非常巨大,而且学习难度很大(低纬度映射到高纬度需要添加许多信息)。因此,DCGAN就出现了。

具体而言,DCGAN将传统GAN的生成器、判别器均采用GAN实现,且使用了一下tricks

  • 将pooling层convolutions替代,其中,在discriminator上用strided convolutions替代,在generator上用fractional-strided convolutions替代。
  • 在generator和discriminator上都使用batchnorm。
  • 移除全连接层,global pooling增加了模型的稳定性,但伤害了收敛速度。
  • 在generator的除了输出层外的所有层使用ReLU,输出层采用tanh。
  • 在discriminator的所有层上使用LeakyReLU。

网络结构图如下:

7.4.3 如何理解GAN中的输入随机噪声

为了了解输入随机噪声每一个维度代表的含义,作者做了一个非常有趣的工作,即在隐空间上,假设知道哪几个变量控制着某个物体,那么将这几个变量挡住是不是就可以将生成图片中的某个物体消失?

论文中的实验是这样的:首先,生成150张图片,包括有窗户的和没有窗户的,然后使用一个逻辑斯谛回归函数来进行分类,对于权重不为0的特征,认为它和窗户有关。将其挡住,得到新的生成图片,结果如下:

此外,将几个输入噪声进行算数运算,可以得到语义上进行算数运算的非常有趣的结果,类似于word2vec。

7.4.4 GAN为什么容易训练崩溃

所谓GAN的训练崩溃,指的是训练过程中,生成器和判别器存在一方压倒另一方的情况。

GAN原始判别器的Loss在判别器达到最优的时候,等价于最小化生成分布与真实分布之间的JS散度,由于随机生成分布很难与真实分布有不可忽略的重叠以及JS散度的突变特性,使得生成器面临梯度消失的问题;

可是如果不把判别器训练到最优,那么生成器优化的目标就失去了意义。因此需要我小心的平衡二者,要把判别器训练的不好也不坏才行。否则就会出现训练崩溃,得不到想要的结果。

7.4.5 WGAN如何解决训练崩溃问题

WGAN作者提出了使用Wasserstein距离,以解决GAN网络训练过程难以判断收敛性的问题。Wasserstein距离定义如下:

L={\rm E}{x\sim{p{data}}(x)}[f_w(x)] - {\rm E}_{x\sim{p_g}(x)}[f_w(x)]

通过最小化Wasserstein距离,得到了WGAN的Loss:

  • WGAN生成器Loss:- {\rm E}_{x\sim{p_g}(x)}[f_w(x)]
  • WGAN判别器Loss:L=-{\rm E}{x\sim{p{data}}(x)}[f_w(x)] + {\rm E}_{x\sim{p_g}(x)}[f_w(x)]

从公式上GAN似乎总是让人摸不着头脑,在代码实现上来说,其实就以下几点:

  • 判别器最后一层去掉sigmoid
  • 生成器和判别器的loss不取log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c

7.4.6 WGAN-GP:带有梯度正则的WGAN

实际实验过程中发现,WGAN没有那么好用,主要原因在于WGAN带有梯度截断。梯度截断将导致判别网络趋向于一个二值网络,造成模型容量的下降。于是作者提出使用梯度惩罚来替代梯度裁剪。公式如下:

L=-{\rm E}{x\sim{p{data}}(x)}[f_w(x)] + {\rm E}{x\sim{p_g}(x)}[f_w(x)]+\lambda{\rm E}{x\sim{p_x}(x)}[\lVert\nabla_x(D(x))\rVert_p-1]^2

由于上式是对每一个梯度进行惩罚,所以不适合使用BN,因为它会引入不同batch中不同样本的相互依赖关系。如果需要的话,可以选择Layer Normalization。实际训练过程中,就可以通过Wasserstein距离来度量模型收敛程度了:

上图纵坐标是Wasserstein距离,横坐标是迭代次数。可以看出,随着迭代的进行,Wasserstein距离趋于收敛,生成图像也趋于稳定。

7.4.7 LSGAN

LSGAN(Least Squares GAN)这篇文章主要针对标准GAN的稳定性和图片生成质量不高做了一个改进。作者将原始GAN的交叉熵损失采用最小二乘损失替代。

LSGAN的Loss:

\mathop{\min }\limits_DJ(D)=\mathop{\min}\limits_D[{\frac{1}{2}}{\rm E}{x\sim{p{data}}(x)}[D(x)-a]^2 + {\frac{1}{2}}{\rm E}_{z\sim{p_z}(z)}[D(G(z))-b]^2]

\mathop{\min }\limits_GJ(D)=\mathop{\min}\limits_G {\frac{1}{2}}{\rm E}_{z\sim{p_z}(z)}[D(G(z))-c]^2

实际实现的时候非常简单,最后一层去掉sigmoid,并且计算Loss的时候用平方误差即可。之所以这么做,作者在原文给出了一张图,交叉熵与最小二乘损失对比图:

上面是作者给出的基于交叉熵损失以及最小二乘损失的Loss函数。横坐标代表Loss函数的输入,纵坐标代表输出的Loss值。可以看出,随着输入的增大,sigmoid交叉熵损失很快趋于0,容易导致梯度饱和问题。如果使用右边的Loss设计,则只在x=0点处饱和。因此使用LSGAN可以很好的解决交叉熵损失的问题。

7.4.8 如何尽量避免GAN的训练崩溃问题

  1. 归一化图像输入到(-1,1)之间;Generator最后一层使用tanh激活函数。
  2. 生成器的Loss采用:min(log 1-D)。因为原始的生成器Loss存在梯度消失问题;训练生成器的时候,考虑反转标签,real=fake,fake=real。
  3. 不要在均匀分布上采样,应该在高斯分布上采样。
  4. 一个Mini-batch里面必须只有正样本,或者负样本。不要混在一起;如果用不了Batch Norm,可以用Instance Norm。
  5. 避免稀疏梯度,即少用ReLU,MaxPool。可以用LeakyReLU替代ReLU,下采样可以用Average Pooling或者Convolution + stride替代。上采样可以用PixelShuffle,ConvTranspose2d + stride。
  6. 平滑标签或者给标签添加噪声;平滑标签,即对正样本,可以使用0.7-1.2的随机数替代;对于负样本,可以使用0-0.3的随机数替代。给标签加噪声:即训练判别器的时候,随机翻转部分样本的标签。
  7. 如果可以,请用DCGAN或者混合模型:KL + GAN,VAE + GAN。
  8. 使用LSGAN,WGAN-GP。
  9. Generator使用Adam,Discriminator使用SGD。
  10. 尽快发现错误;比如:判别器Loss为0,说明训练失败了;如果生成器Loss稳步下降,说明判别器没发挥作用。
  11. 不要试着通过比较生成器,判别器Loss的大小来解决训练过程中的模型坍塌问题。比如:While Loss D > Loss A: Train D While Loss A > Loss D: Train A。
  12. 如果有标签,请尽量利用标签信息来训练。
  13. 给判别器的输入加一些噪声,给G的每一层加一些人工噪声。
  14. 多训练判别器。尤其是在加了噪声的时候。
  15. 对于生成器,在训练、测试的时候使用Dropout。

相关文章:

深度学习500问——Chapter07:生成对抗网络(GAN)(2)

文章目录 7.2 GAN的生成能力评价 7.2.1 如何客观评价GAN的生成能力 7.2.2 Inception Score 7.2.3 Mode Score 7.2.5 Wasserstein distance 7.2.6 Frchet Inception Distance (FID) 7.2.7 1-Nearest Neighbor classifier 7.2.8 其他评价方法 7.3 其他常见的生成式模型有哪些 7.…...

A13 STM32_HAL库函数 之 HAL-ETH通用驱动 -- B -- 所有函数的介绍及使用

A13 STM32_HAL库函数 之 HAL-ETH通用驱动 -- B -- 所有函数的介绍及使用 1 通用定时器(TIM)预览1.11 HAL_ETH_TxCpltCallback1.12 HAL_ETH_RxCpltCallback1.13 HAL_ETH_ErrorCallback1.14 HAL_ETH_ReadPHYRegister1.15 HAL_ETH_WritePHYRegister1.16 HAL…...

Qotom Q720G5英特尔赛扬处理器N4000高性价比无风扇迷你电脑5网口软路由防火墙

在数字时代,迷你电脑已经成为高效、灵活的解决方案,无论是个人用户还是企业用户,都能从中受益。Qotom Q720G5 无风扇迷你电脑就是这样一款强大的选择,它不仅可以作为软路由、防火墙和路由器,还有着更多的潜力等待发掘。…...

如何了解数字化和信息化的区别?

在数字化浪潮席卷全球的今天,企业如何乘风破浪、实现转型升级? 数字化和信息化,这两个看似相似却各有千秋的概念,一直被人们拿来对比。 下面就来讲一讲我的理解: 从简单了说: “信息化”可以理解为传统数…...

CTF-SHOW SSRF

web351 存在一个flag.php页面,访问会返回不是本地用户的消息,那肯定是要让我们以本地用户去访问127.0.0.1/flag.php web352 代码中先判断是否为HTTP或https协议,之后判断我们传入的url中是否含有localhost和127.0.0,如果没有则…...

客户端传日期格式字段(String),服务端接口使用java.util.Date类型接收报错问题

客户端传日期格式字段(string),服务端接口使用java.util.Date类型接收报错问题 问题演示第1种:客户端以URL拼接的方式传值第2种:客户端以body中的form-data方式提交第3种 客户端以Body中的json方式提交 问题解决(全局解…...

【Python面试题收录】什么是堆?什么是栈?栈和堆的区别是什么?

一、堆和栈的定义 (1)堆(Heap) 数据结构:堆是一种特殊的完全二叉树,满足父节点的值总是大于或等于(大根堆)其子节点的值。也可以是总是小于或等于(小根堆)其…...

5-云原生监控体系-Grafana-使用配置文件实现自动化导入Dashboard

文章目录 1. 介绍(此文档使用的版本 grafana-enterprise-10.0.3-1)2. 清空之前的实验数据3. 使用配置文件方式配置 Datasource3.1. 创建配置文件3.2. 重启服务并检查是否生效4. 使用配置文件方式配置 Dashboard4.1. 创建配置文件5. 配置 Dashboard JSON 文件5.1. 下载 JSON 文…...

Ollama、FastGPT大模型RAG结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ Ollama作为后端大模型加载运行 FastGPT作为前端页面聊天集成RA…...

夯实智慧新能源数据底座,TiDB Serverless 在 Sandisolar+ 的应用实践

本文介绍了 SandiSolar通过 TiDB Serverless 构建智慧新能源数据底座的思路与实践。作为一家致力于为全球提供清洁电力解决方案的新能源企业,SandiSolar面临着处理大量实时数据的挑战。为了应对这一问题,SandiSolar选择了 TiDB Serverless 作为他们的数据…...

MySQL数据库max_allowed_packet参数

如上图所示的报错,我在提交接口的时候出现了这个错误: MySqlConnector.MySqlException:Error submitting 4MB packet;ensure max_allowed_packet is greater than 4MB.在MySQL数据库中,有一个参数叫max_allowed_packet,这个参数会…...

Day98:云上攻防-云原生篇K8s安全Config泄漏Etcd存储Dashboard鉴权Proxy暴露

目录 云原生-K8s安全-etcd(Master-数据库)未授权访问 etcdV2版本利用 etcdV3版本利用 云原生-K8s安全-Dashboard(Master-web面板)未授权访问 云原生-K8s安全-Configfile鉴权文件泄漏 云原生-K8s安全-Kubectl Proxy不安全配置 知识点: 1、云原生-K8s安全-etcd未…...

JUC下面常见的锁

这里写目录标题 1、ReentrantLock2、Semaphore3、CountDownLatch4、CyclicBarrier 1、ReentrantLock ReentrantLock 是属于独占模式, 即同一时刻只允许一个线程获取锁。 2、Semaphore Semaphore 属于共享模式,synchronized 和 ReentrantLock 都是一次只…...

Uniapp+基于百度智能云完成AI视觉功能(附前端思路)

本博客使用uniapp百度智能云图像大模型中的AI视觉API(本文以物体检测为例)完成了一个简单的图像识别页面,调用百度智能云API可以实现快速训练模型并且部署的效果。 uniapp百度智能云AI视觉页面实现 先上效果图实现过程百度智能云Easy DL训练图…...

Android 软件盘的弹出和消失的监听

监听接口 OnKeyboardListener.java public interface OnKeyboardListener {void onKeyboardHidden();void onKeyboardShow(int keyboardHeight);} KeyBoardUtil.java public class KeyBoardUtil {private final static String TAG "KeyBoardUtil";public PopupWi…...

通俗易懂HTTP和HTTPS区别

HTTP:超文本传输协议,它是使用一种明文的方式发送我们的内容,没有任何的加密,例如我们要在网页上输入账号密码,如果使用HTTP协议,账号密码就可能会被暴露,默认端口是80. HTTPS:是HT…...

【ZZULIOJ】1061: 顺序输出各位数字(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 输入一个不大于10的9次方的正整数,从高位开始逐位分割并输出各位数字。 输入 输入一个正整数n,n是int型数据 输出 依次输出各位上的数字,每一个数字后面有一个空格…...

java数据结构与算法刷题-----LeetCode260. 只出现一次的数字 III

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 与运算取末尾1分组 与运算取末尾1分组 解题思路:时间…...

AWS被误扣费了,怎么解决?

有时在使用aws时,可能会无意中被AWS扣费,对于如何处理这个问题,作为aws的合作伙伴,接下来由九河云进行讲解: (1)审查账单:首先,您需要仔细审查AWS账单,了解具…...

再传IPO消息,SHEIN的上市为何充满变数?

据《金融时报》援引消息人士报道,SHEIN正在等待北京监管部门的批准,以推进在纽约或伦敦的重磅上市。 几乎每隔一段时间,SHEIN即将上市的消息就会成为媒体关注的焦点,但每一次报道都“没有下文”,再加上SHEIN官方的“拒…...

maven bom

BOM(Bill of Materials)是由Maven提供的功能,它通过定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号。BOM的维护方负责版本升级,并保证BOM中定义的jar包版本之间的兼容性。 为什么要使用BOM 使用BOM除…...

若依vue中关于字典的使用

文章目录 字典管理页面列表点击某个字典类型展示具体字典数据修改某一条字典数据 字典的应用一般用于select多选框中代码实现根据字典Dict的value获取Label,类似于通过key获得value 源码解析 字典管理页面 列表 点击某个字典类型展示具体字典数据 修改某一条字典数…...

链表题(哑结点的使用)

给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 首先面对删除链表节点的操作,我们通常是将该节点的上一个节点的next指向该节点的下一个节点,从而将这个节点置空,达到删除节点的操作。 但是我们会碰…...

C#:求三个整数的最大值

任务描述 本关任务:编写一个程序,实现从键盘输入的三个整数,输出三个整数的最大值。 编程要求 根据提示,在右侧编辑器补充代码,计算并输出从键盘输入的三个数的最大值。 测试说明 平台会对你编写的代码进行测试&…...

广州南沙番禺联想SR530服务器主板传感器故障维修

今日分享一例广州市南沙区联想ThinkSystem SR530服务器sensor sysbrd vol故障问题维修案例; 服务器型号是:Lenovo thinksystem sr530 g6服务器 服务器所在位置:广东省广州市南沙区 服务器故障问题:机房异常停电,来电后…...

深入探索自然语言处理:用Python和BERT构建文本分类模型

在当今的信息时代,自然语言处理(NLP)技术正在改变我们理解和处理自然语言的方式。NLP使计算机能够解读、理解和生成人类语言,从而在多种应用中实现自动化,如聊天机器人、情感分析和文本分类。本文将详细介绍如何使用Py…...

在Visual Studio Code中编辑React项目时,以下是一些推荐的扩展

ESLint:这个扩展可以集成ESLint到VS Code中,帮助你在编写代码时发现和修复JavaScript和TypeScript的语法错误和代码风格问题。 Prettier - Code formatter:Prettier是一个代码格式化工具,可以自动格式化你的代码以保持一致的代码…...

智算时代的基础设施如何实现可继承可演进?浪潮云海发布 InCloud OS V8 新一代架构平台

从 2023 年开始持续火爆的 AIGC 正在加速落地应用,为全行业带来生产生活效率的变革与升级。面对数字化转型与智能化转型,对于技术团队来说,既要根据业务与 AI 应用去部署以云为基础的 AI 算力,又要与已有数据和系统(甚…...

LDF、DBC、BIN、HEX、S19、BLF、ARXML、slx等

文章目录 如题 如题 LDF是LIN报文格式文件,把这个直接拖到软件里面,可以发报文和接收报文 DBC是CAN报文格式文件,把这个直接拖到软件里面,可以发报文和接收报文 BIN文件烧录在BOOT里面(stm32)&#xff0c…...

因为使用ArrayList.removeAll(List list)导致的机器重启

背景 先说一下背景,博主所在的业务组有一个核心系统,需要同步两个不同数据源给过来的数据到redis中,但是每次同步之前需要过滤掉一部分数据,只存储剩下的数据。每次同步的数据与需要过滤掉的数据量级大概在0-100w的数据不等。 由…...

吕梁网站制作吕梁安全/中文域名注册

从一个运行了RTX系统的程序中跳转到另一个带有RTX系统的程序时,程序卡在RTX初始化中,在跳转前关闭滴答定时器中断,跳转正常 http://www.keil.com/support/docs/3925.htm...

用英文字母做网站关键词/怎么做

东航客机MU5735坠毁事故牵动人心。最新消息显示,第一部黑匣子已经找到了,为话音记录器,目前调查人员正在全力搜寻另一部飞行数据记录器,争取尽早查明事故原因,黑匣子可以说是了解真相的关键。 黑匣子是判断飞行事故原…...

建设wap手机网站制作/北京seo优化方案

使用SMB登入扫描器对大量主机的用户名和口令进行猜解,不过扫描动静很大,容易被察觉,而且每一次登入尝试都会被扫描的主机系统日志记录下来,留下痕迹不建议使用。 实例 第一步: msf > use auxiliary/scanner/smb/smb…...

北京建设工程网站/长沙关键词优化首选

鼠标连点器是一款非常便捷的工具,可以帮助我们自动进行鼠标点击操作。这种工具尤其适用于一些需要反复点击同一个位置的软件或游戏,在这些情况下手动点击会非常费时费力,而鼠标连点器就能够为我们节省很多宝贵的时间。但是,对于没…...

北京免费网站建设模板下载/谷歌seo靠谱吗

经常遇到的面试题,一个类继承另一个类然后问输出的结果是什么。个人觉得就是考类的输出问题(亲测) 第一:单一的类执行顺序 package Test; public class person { static{ System.out.println("父类的静态块"); } per…...

网站百度权重怎么提升/seo优化技术培训中心

上篇文章中我们提到了代价函数J(θ)J(\theta)J(θ),并期望使它最小化,那代价函数长什么样子呢? 接下来,我们将给大家一个直观的感受,看看参数θ\thetaθ取不同值时,J(θ)J(\theta)J(θ)的几何呈现 我们可以…...