人人都能看懂的DDPM反向降噪过程公式推导

news2025/7/10 23:51:26

0 前言

上一篇介绍了前向加噪过程,得到如下从 x 0 x_0 x0 一步到 x t x_t xt 过程:

  1. α t + β t = 1 \alpha_t +\beta_t=1 αt+βt=1,其中 β t \beta_t βt 是正态分布方差,即第 t t t 步产生的噪声从 N ( 0 , β t ) N(0,\beta_t) N(0,βt) 采样。
  2. X t = α ‾ t X 0 + 1 − α ‾ t z t X_t = \sqrt{\overline{\alpha}_t} X_0 + \sqrt{1- \overline{\alpha}_t}z_t Xt=αt X0+1αt zt,其中 X t X_t Xt表示第t步加噪后的图像, X 0 X_0 X0表示初始图像。 α ‾ t = α t α t − 1 α t − 2 . . . α 1 \overline{\alpha}_t = \alpha_t\alpha_{t-1}\alpha_{t-2}...\alpha_1 αt=αtαt1αt2...α1 z t z_t zt ~ N ( 0 , 1 ) N(0, 1) N(0,1)

可以看到,加噪过程唯一不确定的是从标准正态分布中随机采样的噪声 z t z_t zt。因此,我们训练一个噪声预测模型,模型预测当前图像的噪声 z t z_t zt,记作 ϵ \epsilon ϵ

这样,可以从随机噪声中一步就可以预测到 X 0 = 1 α ‾ t ( X t − 1 − α ‾ t ϵ ) X_0=\frac{1}{\sqrt{\overline \alpha_t}} (X_t-\sqrt{1-\overline\alpha_t}\epsilon) X0=αt 1(Xt1αt ϵ),然而,从图像中精准的预测 z t z_t zt比较困难,尤其是在初始随机噪声中。

如果我们知道真实的 X 0 X_0 X0,结合 X t X_t Xt,我们可以比较置信的推导出 x t − 1 x_{t-1} xt1。然而我们不可能知道真实 X 0 X_0 X0,但是可以借助模型预测,虽然从 X t X_t Xt直接预测 X 0 X_0 X0不够准确,但是此时预测出的 X 0 X_0 X0是根据当前 X t X_t Xt输入预测的最大可能性的 X 0 X_0 X0。可以将模型预测的 X 0 X_0 X0假设为真实 X 0 X_0 X0。直接反推 X t − 1 X_{t-1} Xt1,随着不断地反向迭代降噪,最终得到的 X 0 X_0 X0越来越接近真实分布。

1 数学基础

1.1 重参数技巧

X ∼ N ( μ , σ 2 ) , Y ∼ N ( 0 , 1 ) X\sim N(\mu,\sigma^2),Y\sim N(0, 1) XN(μ,σ2)YN(0,1) , 则从 X X X 中随机采样 z z z 等价于从标准正态分布 Y Y Y 中采样 z ′ z' z z = μ + σ z ′ z=\mu+\sigma z' z=μ+σz

1.2 正态分布概率密度函数

X ∼ N ( μ , σ 2 ) X∼N(\mu,\sigma^2) XN(μ,σ2),则其概率密度函数:
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi}\sigma }e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2π σ1e2σ2(xμ)2

1.3 贝叶斯公式
p ( X t − 1 ∣ X t ) = p ( X t ∣ X t − 1 ) p ( X t − 1 ) p ( X t ) p(X_{t-1}|X_t) = p(X_t|X_{t-1}) \frac{p(X_{t-1})}{p(X_t)} p(Xt1Xt)=p(XtXt1)p(Xt)p(Xt1)

2 由 x 0 x_0 x0 x t x_t xt 反推 x t − 1 x_{t-1} xt1

2.1 推断 x t − 1 x_{t-1} xt1分布

根据加噪过程,有如下4个公式:
q ( x t − 1 ∣ x 0 ) ∼ N ( α ‾ t − 1 x 0 , ( 1 − α ‾ t − 1 ) I ) 公式 ( 1 ) q ( x t ∣ x 0 ) ∼ N ( α ‾ t x 0 , ( 1 − α ‾ t ) I ) 公式 ( 2 ) q ( x t ∣ x t − 1 ) = α t x t − 1 + 1 − α t z t 公式 ( 3 ) q ( x t ∣ x t − 1 , x 0 ) = q ( x t ∣ x t − 1 ) ∼ N ( α t x t − 1 , ( 1 − α t ) I ) 公式 ( 4 ) \begin{aligned} &q(x_{t-1}|x_0) \sim N(\sqrt{\overline{\alpha}_{t-1}}x_0, (1-\overline{\alpha}_{t-1})I) &\qquad 公式(1)\\ &q(x_t|x_0) \sim N(\sqrt{\overline{\alpha}_t}x_0, (1-\overline{\alpha}_t)I) &\qquad 公式(2)\\ \\ &q(x_t|x_{t-1}) =\sqrt{\alpha_t}x_{t-1}+\sqrt{1-\alpha_t}z_t &\qquad 公式(3)\\ &q(x_t|x_{t-1},x_0) = q(x_t|x_{t-1}) \sim N(\sqrt{\alpha_t}x_{t-1},(1-\alpha_t)I) &\qquad 公式(4) \end{aligned} q(xt1x0)N(αt1 x0,(1αt1)I)q(xtx0)N(αt x0,(1αt)I)q(xtxt1)=αt xt1+1αt ztq(xtxt1,x0)=q(xtxt1)N(αt xt1,(1αt)I)公式(1)公式(2)公式(3)公式(4)

在已知 x t x_t xt x 0 x_0 x0 时,反推 x t − 1 x_{t-1} xt1,套用贝叶斯公式:

q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) \begin{aligned} q(x_{t-1}|x_t, x_0) &= \frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)} \\ &=\frac{q(x_t|x_{t-1})q(x_{t-1}|x_0)}{q(x_t|x_0)} \end{aligned} q(xt1xt,x0)=q(xtx0)q(xtxt1,x0)q(xt1x0)=q(xtx0)q(xtxt1)q(xt1x0)
因为 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0) q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) q ( x t ∣ x t − 1 , x 0 ) q(x_t|x_{t-1},x_0) q(xtxt1,x0) 三项都服从正态分布,所以 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)服从某个正态分布,接下来只需计算这个正态分布的均值和方差。

2.2 推导 x t − 1 x_{t-1} xt1均值、方差

从概率密度函数入手, q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0) 概率密度如下:
1 2 π 1 − α t e − ( x t − α t x t − 1 ) 2 2 ( 1 − α t ) 1 2 π 1 − α ‾ t − 1 e − ( x t − 1 − α ‾ t − 1 x 0 ) 2 2 ( 1 − α ‾ t − 1 ) 1 2 π 1 − α ‾ t e − ( x t − α ‾ t x 0 ) 2 2 ( 1 − α ‾ t ) = 1 2 π ( 1 − α t ) ( 1 − α ‾ t − 1 ) 1 − α ‾ t e − [ ( x t − α t x t − 1 ) 2 2 ( 1 − α t ) + ( x t − 1 − α ‾ t − 1 x 0 ) 2 2 ( 1 − α ‾ t − 1 ) − ( x t − α ‾ t x 0 ) 2 2 ( 1 − α ‾ t ) ] 公式 ( 5 ) \begin{aligned} &\frac{\frac{1}{\sqrt{2\pi}\sqrt{1-\alpha_t}} e^{-\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{2(1-\alpha_t)}} \frac{1}{\sqrt{2\pi}\sqrt{1-\overline{\alpha}_{t-1}} }e^{-\frac{(x_{t-1}-\sqrt{\overline{\alpha}_{t-1}}x_0)^2}{2(1-\overline{\alpha}_{t-1})}}} {\frac{1}{\sqrt{2\pi}\sqrt{1-\overline{\alpha}_t} }e^{-\frac{(x_t-\sqrt{\overline{\alpha}_t}x_0)^2}{2(1-\overline{\alpha}_t)}}} \\ \\ &=\frac{1}{\sqrt{2\pi}\sqrt\frac{(1-\alpha_t)(1-\overline{\alpha}_{t-1})}{1-\overline{\alpha}_t}} e^{-[\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{2(1-\alpha_t)}+\frac{(x_{t-1}-\sqrt{\overline{\alpha}_{t-1}}x_0)^2}{2(1-\overline{\alpha}_{t-1})}-\frac{(x_t-\sqrt{\overline{\alpha}_t}x_0)^2}{2(1-\overline{\alpha}_t)}]} \qquad\qquad公式(5) \end{aligned} 2π 1αt 1e2(1αt)(xtαt x0)22π 1αt 1e2(1αt)(xtαt xt1)22π 1αt1 1e2(1αt1)(xt1αt1 x0)2=2π 1αt(1αt)(1αt1) 1e[2(1αt)(xtαt xt1)2+2(1αt1)(xt1αt1 x0)22(1αt)(xtαt x0)2]公式(5)

前面有说到 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)服从某个正态分布,因此公式(1)是对应正态分布的概率密度函数。而正态分布的概率密度函数形式为 f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi}\sigma }e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2π σ1e2σ2(xμ)2,对号入座,
1 2 π σ e ( . . . ) = 1 2 π ( 1 − α t ) ( 1 − α ‾ t − 1 ) 1 − α ‾ t e ( . . . ) \frac{1}{\sqrt{2\pi}\sigma } e^{(...)}= \frac{1}{\sqrt{2\pi}\sqrt\frac{(1-\alpha_t)(1-\overline{\alpha}_{t-1})}{1-\overline{\alpha}_t}} e^{(...)} 2π σ1e(...)=2π 1αt(1αt)(1αt1) 1e(...)
即可以得知 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)的方差只能为:
σ 2 = ( 1 − α t ) ( 1 − α ‾ t − 1 ) 1 − α ‾ t 公式 ( 6 ) \sigma^2 = \frac{(1-\alpha_t)(1-\overline{\alpha}_{t-1})} {1-\overline{\alpha}_t} \qquad\qquad公式(6) σ2=1αt(1αt)(1αt1)公式(6)

为了凑成正态分布的概率密度函数,整理指数部分为 − ( x − μ ) 2 2 σ 2 -\frac{(x-\mu)^2}{2\sigma^2} 2σ2(xμ)2,即分母凑成 2 σ 2 2\sigma^2 2σ2形式,结合公式(2):
− [ ( x t − α t x t − 1 ) 2 2 ( 1 − α t ) + ( x t − 1 − α ‾ t − 1 x 0 ) 2 2 ( 1 − α ‾ t − 1 ) − ( x t − α ‾ t x 0 ) 2 2 ( 1 − α ‾ t ) ] = − [ ( x t − α t x t − 1 ) 2 2 σ 2 ∗ 1 − α ‾ t − 1 1 − α ‾ t + ( x t − 1 − α ‾ t − 1 x 0 ) 2 2 σ 2 ∗ 1 − α t 1 − α ‾ t − ( x t − α ‾ t x 0 ) 2 2 σ 2 ∗ ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) 2 ] = − 1 2 σ 2 [ x t − 1 2 − 2 α t ( 1 − α ‾ t − 1 ) x t + α ‾ t − 1 ( 1 − α t ) x 0 1 − α ‾ t x t − 1 + ( α t ( 1 − α ‾ t − 1 ) x t + α ‾ t − 1 ( 1 − α t ) x 0 1 − α ‾ t ) 2 ] = − 1 2 σ 2 [ x t − 1 − α t ( 1 − α ‾ t − 1 ) x t + α ‾ t − 1 ( 1 − α t ) x 0 1 − α ‾ t ] 2 \begin{aligned} &-[\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{2(1-\alpha_t)}+\frac{(x_{t-1}-\sqrt{\overline{\alpha}_{t-1}}x_0)^2}{2(1-\overline{\alpha}_{t-1})}-\frac{(x_t-\sqrt{\overline{\alpha}_t}x_0)^2}{2(1-\overline{\alpha}_t)}] \\ \\ &=-[\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{2\sigma^2 } * \frac { 1-\overline{\alpha}_{t-1}} {1-\overline{\alpha}_t} +\frac{(x_{t-1}-\sqrt{\overline{\alpha}_{t-1}}x_0)^2}{2\sigma^2} * \frac{1-\alpha_t} {1-\overline{\alpha}_t} -\frac{(x_t-\sqrt{\overline{\alpha}_t}x_0)^2}{2\sigma^2} * \frac{(1-\alpha_t)(1-\overline{\alpha}_{t-1})} {(1-\overline{\alpha}_t)^2} ] \\ \\ &=-\frac{1}{2\sigma^2}[x_{t-1}^2 - 2 \frac{ \sqrt{\alpha_t}(1-\overline\alpha_{t-1})x_t+\sqrt{\overline\alpha_{t-1}}(1-\alpha_t)x_0 }{1-\overline\alpha_t}x_{t-1} +(\frac{ \sqrt{\alpha_t}(1-\overline\alpha_{t-1})x_t+\sqrt{\overline\alpha_{t-1}}(1-\alpha_t)x_0 }{1-\overline\alpha_t})^2 ] \\ \\ &=-\frac{1}{2\sigma^2}[x_{t-1} - \frac{ \sqrt{\alpha_t}(1-\overline\alpha_{t-1})x_t+\sqrt{\overline\alpha_{t-1}}(1-\alpha_t)x_0 }{1-\overline\alpha_t}]^2 \end{aligned} [2(1αt)(xtαt xt1)2+2(1αt1)(xt1αt1 x0)22(1αt)(xtαt x0)2]=[2σ2(xtαt xt1)21αt1αt1+2σ2(xt1αt1 x0)21αt1αt2σ2(xtαt x0)2(1αt)2(1αt)(1αt1)]=2σ21[xt1221αtαt (1αt1)xt+αt1 (1αt)x0xt1+(1αtαt (1αt1)xt+αt1 (1αt)x0)2]=2σ21[xt11αtαt (1αt1)xt+αt1 (1αt)x0]2
对号入座,可得均值:
μ = α t ( 1 − α ‾ t − 1 ) x t + α ‾ t − 1 ( 1 − α t ) x 0 1 − α ‾ t 公式 ( 7 ) \mu= \frac{ \sqrt{\alpha_t}(1-\overline\alpha_{t-1})x_t+\sqrt{\overline\alpha_{t-1}}(1-\alpha_t)x_0 }{1-\overline\alpha_t} \qquad\qquad公式(7) μ=1αtαt (1αt1)xt+αt1 (1αt)x0公式(7)

将公式(7)中的 x 0 x_0 x0用模型预测噪声 ϵ \epsilon ϵ x t x_t xt 替换:
x t = α ‾ t x 0 + 1 − α ‾ t ϵ = > x 0 = x t − 1 − α ‾ t ϵ α ‾ t \begin{aligned} &x_t = \sqrt{\overline\alpha_t}x_0+ \sqrt{1-\overline\alpha_t}\epsilon \\ \\ => \quad&x_0 = \frac {x_t- \sqrt{1-\overline\alpha_t}\epsilon}{\sqrt{\overline \alpha_t}} \end{aligned} =>xt=αt x0+1αt ϵx0=αt xt1αt ϵ
替换 x 0 x_0 x0 并化简得到均值:
μ = α t ( 1 − α ‾ t − 1 ) x t + α ‾ t − 1 ( 1 − α t ) x 0 1 − α ‾ t = α t ( 1 − α ‾ t − 1 ) x t + 1 α t ( 1 − α t ) ( x t − 1 − α ‾ t ϵ ) 1 − α ‾ t = 1 α t α t ( 1 − α ‾ t − 1 ) x t + ( 1 − α t ) x t − ( 1 − α t ) 1 − α ‾ t ϵ ) 1 − α ‾ t = 1 α t ( 1 − α ‾ t ) x t − ( 1 − α t ) 1 − α ‾ t ϵ ) 1 − α ‾ t = 1 α t ( x t − 1 − α t 1 − α ‾ t ϵ ) \begin{aligned} \mu&= \frac{ \sqrt{\alpha_t}(1-\overline\alpha_{t-1})x_t+\sqrt{\overline\alpha_{t-1}}(1-\alpha_t)x_0 }{1-\overline\alpha_t} \\ \\ &=\frac{ \sqrt{\alpha_t}(1-\overline\alpha_{t-1})x_t+ \frac{1}{\sqrt{\alpha_t}}(1-\alpha_t)(x_t-\sqrt{1-\overline \alpha_t} \epsilon) }{1-\overline\alpha_t} \\ \\ &=\frac{1}{\sqrt{\alpha_t}} \frac {\alpha_t(1-\overline\alpha_{t-1})x_t+(1-\alpha_t)x_t - (1-\alpha_t)\sqrt{1-\overline\alpha_t}\epsilon)} {1-\overline\alpha_t} \\ \\ &=\frac{1}{\sqrt{\alpha_t}} \frac{(1-\overline\alpha_t)x_t-(1-\alpha_t)\sqrt{1-\overline\alpha_t}\epsilon)}{1-\overline\alpha_t} \\ \\ &=\frac{1}{\sqrt{\alpha_t}} (x_t - \frac{ 1-\alpha_t }{\sqrt{1-\overline\alpha_t}} \epsilon) \end{aligned} μ=1αtαt (1αt1)xt+αt1 (1αt)x0=1αtαt (1αt1)xt+αt 1(1αt)(xt1αt ϵ)=αt 11αtαt(1αt1)xt+(1αt)xt(1αt)1αt ϵ)=αt 11αt(1αt)xt(1αt)1αt ϵ)=αt 1(xt1αt 1αtϵ)

至此,我们得到了 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)所服从正态分布的均值 μ \mu μ 和方差 σ 2 \sigma^2 σ2
μ = 1 α t ( x t − 1 − α t 1 − α ‾ t ϵ ) 公式 ( 8 ) σ 2 = ( 1 − α t ) ( 1 − α ‾ t − 1 ) 1 − α ‾ t = 1 − α ‾ t − 1 1 − α ‾ t β t 公式 ( 9 ) \begin{aligned} \mu &= \frac{1}{\sqrt{\alpha_t}} (x_t - \frac{ 1-\alpha_t }{\sqrt{1-\overline\alpha_t}} \epsilon)&\qquad\qquad公式(8)\\ \\ \sigma^2 &= \frac{(1-\alpha_t)(1-\overline{\alpha}_{t-1})} {1-\overline{\alpha}_t} = \frac{1-\overline{\alpha}_{t-1}} {1-\overline{\alpha}_t} \beta_t &\qquad\qquad公式(9) \end{aligned} μσ2=αt 1(xt1αt 1αtϵ)=1αt(1αt)(1αt1)=1αt1αt1βt公式(8)公式(9)
注意公式(9),作者实验发现, σ 2 = 1 − α ‾ t − 1 1 − α ‾ t β t \sigma^2 =\frac{1-\overline{\alpha}_{t-1}} {1-\overline{\alpha}_t} \beta_t σ2=1αt1αt1βt σ 2 = β t \sigma^2 =\beta_t σ2=βt 效果相似。这也很好理解,因为 1 − α ‾ t − 1 1 − α ‾ t \frac{1-\overline{\alpha}_{t-1}} {1-\overline{\alpha}_t} 1αt1αt1本身就近似等于1。

方差替换后效果相似原文
因此,方差就直接被替换。再次重新整理最终的均值和方差:
μ = 1 α t ( x t − β t 1 − α ‾ t ϵ ) σ 2 = β t \begin{aligned} \mu &= \frac{1}{\sqrt{\alpha_t}} (x_t - \frac{ \beta_t}{\sqrt{1-\overline\alpha_t}} \epsilon) \\ \\ \sigma^2 &= \beta_t \end{aligned} μσ2=αt 1(xt1αt βtϵ)=βt
可得:

q ( x t − 1 ∣ x t ) ∼ N ( μ , σ 2 ) = N ( 1 α t ( x t − β t 1 − α ‾ t ϵ ) , β t ) q(x_{t-1}|x_t) \sim N(\mu, \sigma^2) = N(\frac{1}{\sqrt{\alpha_t}} (x_t - \frac{ \beta_t}{\sqrt{1-\overline\alpha_t}} \epsilon) , \beta_t) q(xt1xt)N(μ,σ2)=N(αt 1(xt1αt βtϵ),βt)

3 反向降噪

利用重参数技巧:
x t − 1 = μ t + σ z = 1 α t ( x t − β t 1 − α ‾ t ϵ ) + β t z \begin{aligned} x_{t-1} &= \mu_t + \sigma z \\\\ &=\frac{1}{\sqrt{\alpha_t}} (x_t - \frac{ \beta_t}{\sqrt{1-\overline\alpha_t}} \epsilon) + \sqrt{\beta_t} z \end{aligned} xt1=μt+σz=αt 1(xt1αt βtϵ)+βt z

与论文降噪采样算法完全一致。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1158093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

伽马函数 简要总结

1、定义公式: (上面一个△ 意为“定义为”) 例1: 例2: 2、性质 3、举例 例1: 例2: 例3: 笔记记录时间:2023.11.01,笔记记录自汤老师讲解的伽马函数内容。…

算法与数据结构-回溯算法

文章目录 如何理解“回溯算法”?两个回溯算法的经典应用0-1 背包正则表达式 如何理解“回溯算法”? 笼统地讲,回溯算法很多时候都应用在“搜索”这类问题上。不过这里说的搜索,并不是狭义的指我们前面讲过的图的搜索算法&#xf…

损失函数总结(十一):Huber Loss、SmoothL1Loss

损失函数总结(十一):Huber Loss、SmoothL1Loss 1 引言2 损失函数2.1 Huber Loss2.2 SmoothL1Loss 3 总结 1 引言 在前面的文章中已经介绍了介绍了一系列损失函数 (L1Loss、MSELoss、BCELoss、CrossEntropyLoss、NLLLoss、CTCLoss、PoissonNL…

c语言基础:L1-067 洛希极限

科幻电影《流浪地球》中一个重要的情节是地球距离木星太近时,大气开始被木星吸走,而随着不断接近地木“刚体洛希极限”,地球面临被彻底撕碎的危险。但实际上,这个计算是错误的。 洛希极限(Roche limit)是一…

01-开发第一个Vue程序,了解Vue构造函数的配置项data,template,插值语法,el

Vue的快速入门 下载并安装vue.js Vue是一个基于JavaScript实现的框架, 要使用它就需要从Vue官网下载 vue.js文件 第一步:打开Vue2官网,点击下图所示的起步 第二步:继续点击下图所示的安装 第三步:在安装页面向下滚动&#xff0…

永恒之蓝(MS17-010)漏洞利用

永恒之蓝(eternalblue) 永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒…

k8s约束调度

Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 list-watch核心组件为Controller Manager、Scheduler 和 kubelet,这三者协助完成了pod节点的建立过程。 在 Kubernetes 中&…

89 柱状图中最大的矩形

柱状图中最大的矩形 类似接雨水(反过来,相当于找接雨水最少的一段)题解1 暴力搜索(超时) O ( N 2 ) O(N^2) O(N2)另一种 题解2 单调栈【重点学习】常数优化 给定 n 个非负整数,用来表示柱状图中各个柱子的…

【接口测试】目前市面上流行的接口大多有哪几种协议的接口?

首先,关于协议这个词,你要清楚。 接口测试它是基于什么进行测试的,接口测试是什么测试类型,其实有有时候问到一个问题,关联性很强。很多关联性的问题你都可以去考虑。 首先接口测试一个功能黑盒测试&后端&#x…

Snackbar使用介绍及自定义

Snackbar使用介绍及自定义 前言一、Snackbar是什么?二、简单使用三、进阶使用参考 [Android 快别用Toast了,来试试Snackbar](https://blog.csdn.net/g984160547/article/details/121269520) 总结 前言 有个UI要显示自定义样式的toast,并居中…

APISpace 天气预报查询API接口案例代码

1.天气预报查询API产品介绍 APISpace 的 天气预报查询,支持全国以及全球多个城市的天气查询,包含国内3400个城市以及国际4万个城市的实况数据,同时也支持全球任意经纬度查询,接口会返回该经纬度最近的站点信息;更新频率…

【JavaScript】jQuery 使用案例

使用JS实现猜数字游戏 原生JS版&#xff1a; <!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docum…

视频编码转换技巧:视频批量转码H264转H265,高效且顺畅

随着数字媒体的广泛应用&#xff0c;视频编码转换已成为一种普遍的需求。不同的视频格式和编码标准使得在不同设备上播放视频成为可能&#xff0c;同时也带来了兼容性和传输效率的问题。本文讲解引用云炫AI智剪使视频编码转换技巧&#xff0c;即批量将H264编码转换为H265编码&a…

Java修仙传之神奇的ES(基础使用)

前言 ES是什么&#xff1a;一款强大的搜索引擎ES拓展&#xff1a;elasticsearch结合kibana、Logstash、Beats&#xff0c;也就是elastic stack&#xff08;ELK&#xff09; kibana&#xff1a;可视化 ES&#xff1a;搜索引起 Logstash&#xff1a;数据抓取&#xff0c;数据同步…

Element UI的table不同应用

目录 一、自定义表头 二、纵向表头(动态表头) 2.1、分别拿到表头和表头中日期对应的行数据 2.2、拿到每个日期对应的列数据 一、自定义表头 <el-table-column prop"chu" align"center"><!-- 自定义表头 --><template slot"header…

uniapp 微信小程序 授权隐私流程 网上没有的踩坑记录!

首先什么时候我们需要授权操作&#xff0c;比如下图我们调用这些接口时候首先必须让用户授权&#xff0c;这个政策是2022年2月21日24时起对一下接口增加用户授权操作&#xff0c;详情可以看微信文档 授权的逻辑按照官网的意思是&#xff1a; 这个时候就踩坑了&#xff0c;我把…

Linux命令超详细

Linux基础命令 Linux的目录结构 /&#xff0c;根目录是最顶级的目录了Linux只有一个顶级目录&#xff1a;/路径描述的层次关系同样适用/来表示/home/itheima/a.txt&#xff0c;表示根目录下的home文件夹内有itheima文件夹&#xff0c;内有a.txt ls命令 功能&#xff1a;列出…

高级文本编辑软件 UltraEdit mac中文版介绍说明

UltraEdit mac是一款在Windows系统中非常出名的文本编辑器&#xff0c; UltraEdit for mac对于IT程序猿来说&#xff0c;更是必不可少&#xff0c;可以使用UltraEdit编辑配置文件、查看16进制文件、代码高亮显示等&#xff0c;虽然Mac上已经有了很多优秀的文本编辑器&#xff0…

NOA赛道研究:预计2024年渗透率10%!中算力平台迎窗口期

从基础L2到L3的产业演进中&#xff0c;NOA是至关重要的一步&#xff0c;值得被密切关注。 对于产业链不同位置的玩家&#xff0c;其关注的点有所不同&#xff1a;①对于整车厂来说&#xff0c;根据高工智能汽车监测的数据&#xff0c;基础L2的一体机产品已经趋向于成熟&#x…

看完这个,别说你还找不到免费好用的配音软件

有很多小伙伴还在找配音工具&#xff0c;今天就给大家一次性分享四款免费好用的配音工具&#xff0c;每一个都经过测试&#xff0c;并且是我们自己也在用的免费配音工具 第一款&#xff0c;悦音配音工具 拥有强悍的AI智能配音技术&#xff0c;更专业&#xff0c;完美贴近真人配…