扩散模型diffusion model用于图像恢复任务详细原理 (去雨,去雾等皆可),附实现代码

文章目录

      • 1. 去噪扩散概率模型
      • 2. 前向扩散
      • 3. 反向采样
      • 3. 图像条件扩散模型
      • 4. 可以考虑改进的点
      • 5. 实现代码

话不多说,先上代码: 扩散模型diffusion model用于图像恢复完整可运行代码,附详细实验操作流程
令外一篇简化超分扩散模型SR3来实现图像恢复的博客见: 超分扩散模型 SR3 可以做图像去雨、去雾等恢复任务吗?

1. 去噪扩散概率模型

扩散模型是一类生成模型, 和生成对抗网络GAN 、变分自动编码器VAE和标准化流模型NFM等生成网络不同的是, 扩散模型在前向扩散过程中对图像逐步施加噪声, 直至图像被破坏变成完全的高斯噪声, 然后在反向采样过程中学习从高斯噪声还原为真实图像。在模型训练完成后,只需要随机给定一个高斯噪声,就可以生成丰富的真实图像。
在这里插入图片描述

2. 前向扩散

前向扩散过程就是向图像不断加高斯噪声,使其逐渐接近一个与输入数据相关的高斯分布。此处将未加噪声的数据记为 x 0 x_0 x0 x 0 ∼ q ( x 0 ) x_0\sim q(x_0) x0q(x0) q ( x 0 ) q(x_0) q(x0)是为被噪声破坏的原始数据分布,则在 t t t时刻的噪化状态和上一时刻 t − 1 t-1 t1之间的关系为:
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t ⋅ x t − 1 , β t ⋅ I ) , (1) q(x_t|x_{t-1})=\mathcal{N}(x_t; \sqrt{1-\beta_t}\cdot x_{t-1}, \beta_t\cdot\textbf{I}), \tag{1} q(xtxt1)=N(xt;1βt xt1,βtI),(1)其中: t ∈ { 0 , 1 , . . . , T } t\in{\{0, 1, ..., T\}} t{0,1,...,T} N \mathcal{N} N表示高斯噪声分布, β t \beta_t βt是与时刻t相关的噪声方差调节因子, I \textbf{I} I是一个与初始状态 x 0 x_0 x0维度相同的单位矩阵。则输入 x 0 x_0 x0的条件下, x 1 , x 2 , . . . , x T x_1, x_2, ..., x_T x1,x2,...,xT的联合分布可以表示为:
q ( x 1 , x 2 , . . . , x T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) (2) q(x_1, x_2, ..., x_T|x_0)=\displaystyle\prod_{t=1}^{T}q(x_t|x_{t-1}) \tag{2} q(x1,x2,...,xTx0)=t=1Tq(xtxt1)(2)则根据根据马尔科夫性可以直接得到输入 x 0 x_0 x0的条件下 t t t时刻的噪化状态为
q ( x t ∣ x 0 ) = N ( x t ; α ‾ t ⋅ x 0 , ( 1 − α ‾ t ) ⋅ I ) , (3) q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_t}\cdot x_0, (1-\overline{\alpha}_t)\cdot\textbf{I}), \tag{3} q(xtx0)=N(xt;αt x0,(1αt)I),(3)其中: α t : = 1 − β t \alpha_t:=1-\beta_t αt:=1βt, α ‾ t : = ∏ s = 0 t α s \overline{\alpha}_t:=\prod_{s=0}^{t}\alpha_s αt:=s=0tαs。根据公式 ( 1 ) (1) (1)可以得到 t t t时刻的噪化状态 x t x_t xt t − 1 t-1 t1时刻的噪化状态 x t − 1 x_{t-1} xt1的关系为:
x t = α t ⋅ x t − 1 + 1 − α t ⋅ ϵ t − 1 , (4) x_t=\sqrt{\alpha_t}\cdot x_{t-1}+\sqrt{1-\alpha_t}\cdot\epsilon_{t-1}, \tag{4} xt=αt xt1+1αt ϵt1,(4)其中: ϵ t − 1 ∼ N ( 0 , I ) \epsilon_{t-1}\sim\mathcal{N}(\textbf{0}, \textbf{I}) ϵt1N(0,I),通过不断取代递推可以得到 t t t时刻的噪化状态 x t x_t xt与输入 x 0 x_0 x0之间的关系为:
x t = α t ⋅ x t − 1 + 1 − α t ⋅ ϵ t − 1 = α t α t − 1 ⋅ x t − 2 + 1 − α t α t − 1 ⋅ ϵ ‾ t − 2 = α t α t − 1 α t − 2 ⋅ x t − 3 + 1 − α t α t − 1 α t − 2 ⋅ ϵ ‾ t − 3 … = α ‾ t ⋅ x 0 + 1 − α ‾ t ⋅ ϵ (5) \begin{equation*} \begin{aligned} x_t & = \sqrt{\alpha_t}\cdot x_{t-1}+\sqrt{1-\alpha_t}\cdot\epsilon_{t-1} \\ ~ & = \sqrt{\alpha_t\alpha_{t-1}}\cdot x_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}\cdot\overline{\epsilon}_{t-2} \\ ~ & = \sqrt{\alpha_t\alpha_{t-1}\alpha_{t-2}}\cdot x_{t-3}+\sqrt{1-\alpha_t\alpha_{t-1}\alpha_{t-2}}\cdot\overline{\epsilon}_{t-3} \\ ~ & \dots \\ ~ & = \sqrt{\overline{\alpha}_t}\cdot x_0+\sqrt{1-\overline{\alpha}_t}\cdot\epsilon \\ \end{aligned} \end{equation*} \tag{5} xt    =αt xt1+1αt ϵt1=αtαt1 xt2+1αtαt1 ϵt2=αtαt1αt2 xt3+1αtαt1αt2 ϵt3=αt x0+1αt ϵ(5)其中: ϵ ∼ N ( 0 , I ) \epsilon\sim\mathcal{N}(\textbf{0}, \textbf{I}) ϵN(0,I) ϵ ‾ t − 2 \overline{\epsilon}_{t-2} ϵt2是两个高斯分布相加后的分布。第一步到第二步的公式推导需要说明一下,根据高斯噪声的特点,对于两个方差不同的高斯分布 N ( 0 , σ 1 2 ⋅ I ) \mathcal{N}(\textbf{0}, \sigma_1^2\cdot\textbf{I}) N(0,σ12I) N ( 0 , σ 2 2 ⋅ I ) \mathcal{N}(\textbf{0}, \sigma_2^2\cdot\textbf{I}) N(0,σ22I),其相加后的高斯分布为 N ( 0 , ( σ 1 2 + σ 2 2 ) ⋅ I ) \mathcal{N}(\textbf{0}, (\sigma_1^2+\sigma_2^2)\cdot\textbf{I}) N(0,(σ12+σ22)I),表现在公式中,即:
x t = α t ⋅ x t − 1 + 1 − α t ⋅ ϵ t − 1 = α t ⋅ ( α t − 1 ⋅ x t − 2 + 1 − α t − 1 ⋅ ϵ t − 2 ) + 1 − α t ⋅ ϵ t − 1 = α t α t − 1 ⋅ x t − 2 + α t ( 1 − α t − 1 ) ⋅ ϵ t − 2 + 1 − α t ⋅ ϵ t − 1 = α t α t − 1 ⋅ x t − 2 + 1 − α t α t − 1 ⋅ ϵ ‾ t − 2 (6) \begin{equation} \begin{aligned} x_t & = \sqrt{\alpha_t}\cdot x_{t-1}+\sqrt{1-\alpha_t}\cdot\epsilon_{t-1} \\ ~ & = \sqrt{\alpha_t}\cdot( \sqrt{\alpha_{t-1}}\cdot x_{t-2}+\sqrt{1-\alpha_{t-1}}\cdot\epsilon_{t-2})+\sqrt{1-\alpha_t}\cdot\epsilon_{t-1} \\ ~ & = \sqrt{\alpha_t\alpha_{t-1}}\cdot x_{t-2}+ \sqrt{\alpha_t(1-\alpha_{t-1})}\cdot\epsilon_{t-2}+\sqrt{1-\alpha_t}\cdot\epsilon_{t-1} \\ ~ & = \sqrt{\alpha_t\alpha_{t-1}}\cdot x_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}\cdot\overline{\epsilon}_{t-2} \end{aligned} \end{equation} \tag{6} xt   =αt xt1+1αt ϵt1=αt (αt1 xt2+1αt1 ϵt2)+1αt ϵt1=αtαt1 xt2+αt(1αt1) ϵt2+1αt ϵt1=αtαt1 xt2+1αtαt1 ϵt2(6)其中:两个高斯分布相加后的标准差为:
α t ( 1 − α t − 1 ) + ( 1 − α t ) = 1 − α t α t − 1 , (7) \sqrt{\alpha_t(1-\alpha_{t-1})+(1-\alpha_t)}=\sqrt{1-\alpha_t\alpha_{t-1}}, \tag{7} αt(1αt1)+(1αt) =1αtαt1 ,(7)依此得到第二步,进而逐渐递推到最后一步。公式 ( 3 ) (3) (3)和公式 ( 5 ) (5) (5)的目的就是表明在前向扩散过程中,由于每步加的噪声均是同分布的高斯噪声,因此不需要逐步进行加噪,直接就可以由输入 x 0 x_0 x0的到 T T T时刻的噪化状态 x T x_T xT。当 α ‾ T ≈ 0 \overline{\alpha}_T\approx0 αT0 T T T时刻的分布 x t x_t xt则几乎就是一个高斯分布,据此其可以定义为:
q ( x T ) : = ∫ q ( x T ∣ x 0 ) q ( x 0 ) d x 0 ≈ N ( x T ; 0 , I ) , (5) q(x_T):=\int q(x_T|x_0)q(x_0)dx_0\approx\mathcal{N}(x_T; \textbf{0}, \textbf{I}), \tag{5} q(xT):=q(xTx0)q(x0)dx0N(xT;0,I),(5)其中: ∫ \int 表示积分,最终的噪化状态 x T x_T xT也可以在图像上看出其分布特点。

3. 反向采样

反向采样过程就是根据已有的噪化状态通过学习来估计噪声分布,进一步获得上一时刻的状态,并逐渐从高斯分布中构造出真实数据。根据前向扩散过程的结果,可以认为 T T T时刻噪化状态 x T x_T xT的后验分布 p ( x t ) ∼ N ( x t ; 0 , I ) p(x_t)\sim\mathcal{N}(x_t; \textbf{0}, \textbf{I}) p(xt)N(xt;0,I),则联和分布 p θ ( x 0 , x 1 , . . . , x T ) p_{\theta}(x_0, x_1, ..., x_T) pθ(x0,x1,...,xT)也是一个马尔科夫链,其被定义为:
p θ ( x 0 , x 1 , . . . , x T ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) , (6) p_{\theta}(x_0, x_1, ..., x_T):=p(x_T)\displaystyle\prod_{t=1}^{T}p_{\theta}(x_{t-1}|x_t), \tag{6} pθ(x0,x1,...,xT):=p(xT)t=1Tpθ(xt1xt),(6) t − 1 t-1 t1时刻的噪状态 x t − 1 x_{t-1} xt1可以由上一时刻 t t t的状态 x t x_t xt得到,其条件分布可以表示为:
p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , ∑ θ ( x t , t ) ) , (7) p_{\theta}(x_{t-1}|x_t)=\mathcal{N}(x_{t-1}; \mu_{\theta}(x_t, t), {\tiny{\sum}}_{\theta}(x_t, t)), \tag{7} pθ(xt1xt)=N(xt1;μθ(xt,t),θ(xt,t)),(7)其中: μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t) ∑ θ ( x t , t ) ) {\tiny{\sum}}_{\theta}(x_t, t)) θ(xt,t))分别为 t t t时刻由噪声估计网络得到的噪声均值和方差, θ \theta θ为噪声估计网络的参数。此时,在输入为 x 0 x_0 x0时, t − 1 t-1 t1时刻的噪状态 x t − 1 x_{t-1} xt1与上一时刻 t t t的状态 x t x_t xt之间的真实条件分布为:
q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ t ( x t , x 0 ) , β ~ t ⋅ I ) , (8) q(x_{t-1}|x_t, x_0)=\mathcal{N}(x_{t-1}; \tilde{\mu}_{t}(x_t, x_0), \tilde{\beta}_t\cdot\textbf{I}), \tag{8} q(xt1xt,x0)=N(xt1;μ~t(xt,x0),β~tI),(8)其中:噪声后验分布参数 μ ~ t \widetilde{\mu}_t μ t, β ~ t \tilde{\beta}_t β~t分别为:
μ ~ t = 1 α t ( x t − β t 1 − α ‾ t ⋅ ϵ t ) , β ~ t = 1 − α ‾ t − 1 1 − α ‾ t ⋅ β t , (9) \tilde{\mu}_t=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha}_t}}\cdot\epsilon_t), \tilde{\beta}_t=\frac{1-\overline{\alpha}_{t-1}}{1-\overline{\alpha}_t}\cdot\beta_t, \tag{9} μ~t=αt 1(xt1αt βtϵt),β~t=1αt1αt1βt,(9)此处认为 ∑ θ ( x t , t ) = σ t 2 ⋅ I {\small{\sum}}_\theta(x_t, t)=\sigma_t^2\cdot\textbf{I} θ(xt,t)=σt2I,即 σ t 2 = β ~ t \sigma_t^2=\tilde{\beta}_t σt2=β~t,则预测的后验条件分布变为:
p θ ( x t − 01 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , σ t 2 ⋅ I ) , , (10) p_{\theta}(x_{t-01}|x_t)=\mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2\cdot\textbf{I}), \tag{10}, pθ(xt01xt)=N(xt1;μθ(xt,t),σt2I),,(10)即利用噪声估计网络 μ θ \mu_\theta μθ来估计真实噪声分布均值 μ ~ t \tilde{\mu}_t μ~t,则公式 ( 9 ) (9) (9)中的噪声分布均值可以被估计为:
μ θ ( x t , t ) = 1 α t ( x t − β t 1 − α ‾ t ⋅ ϵ θ ( x t , t ) ) , (11) \mu_\theta(x_t, t)=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha}_t}}\cdot\epsilon_\theta(x_t, t)), \tag{11} μθ(xt,t)=αt 1(xt1αt βtϵθ(xt,t)),(11)而根据公式已知 t t t时刻的噪化状态 x t x_t xt满足 x t = α ‾ t ⋅ x 0 + 1 − α ‾ t ⋅ ϵ x_t=\sqrt{\overline{\alpha}_t}\cdot x_0+\sqrt{1-\overline{\alpha}_t}\cdot\epsilon xt=αt x0+1αt ϵ,则网络学习的优化目标就是让估计出的噪声分布接近真实的噪声分布,即:
E x 0 , t , ϵ t ∼ N ( 0 , I ) [ ∣ ∣ ϵ t − ϵ θ ( α ‾ t ⋅ x 0 + 1 − α ‾ t ⋅ ϵ , t ) ∣ ∣ 2 ] , (12) \mathbb{E}_{x_0, t, \epsilon_t\sim\mathcal{N}(0, \textbf{I})}[||\epsilon_t-\epsilon_\theta(\sqrt{\overline\alpha}_t\cdot x_0+\sqrt{1-\overline{\alpha}_t}\cdot\epsilon, t)||^2], \tag{12} Ex0,t,ϵtN(0,I)[∣∣ϵtϵθ(α tx0+1αt ϵ,t)2],(12) t − 1 t-1 t1时刻的噪化状态 x t − 1 x_{t-1} xt1可以表示为 (这块尚没搞清楚这个公式的由来,似乎与原论文中的公式不一样):
x t − 1 = α ‾ t − 1 ( x t − 1 − α ‾ t ⋅ ϵ θ ( x t , t ) α ‾ t ) + 1 − α ‾ t − 1 ⋅ ϵ θ ( x t , t ) , (13) x_{t-1}=\sqrt{\overline\alpha_{t-1}}(\frac{x_t-\sqrt{1-\overline{\alpha}_t}\cdot\epsilon_\theta(x_t, t)}{\sqrt{\overline{\alpha}_t}})+\sqrt{1-\overline{\alpha}_{t-1}}\cdot\epsilon_\theta(x_t, t), \tag{13} xt1=αt1 (αt xt1αt ϵθ(xt,t))+1αt1 ϵθ(xt,t),(13)其中: z ∼ N ( 0 , I ) z\sim\mathcal{N}(\textbf{0}, \textbf{I}) zN(0,I)。则根据不同时刻噪声估计网络对噪声分布的估计可以依据公式 ( 13 ) (13) (13)逐渐反向采样得到真实数据分布。

在这里插入图片描述

3. 图像条件扩散模型

在图像恢复任务中,必须使用条件扩散模型才能生成我们预期的恢复图像,实际中即将退化的图像作为条件引入到噪声估计网络中来估计条件噪声分布。如图所示:
在这里插入图片描述
图像条件扩散模型与经典扩散模型的前向扩散过程完全一样,区别仅在于反向采样过程中是否引入图像条件。则反向采样过程中 x 1 , x 2 , . . . , x T x_1, x_2, ..., x_T x1,x2,...,xT的联合分布变为:
p θ ( x 0 , x 1 , . . . , x T ∣ x ^ ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t , x ^ ) , (14) p_{\theta}(x_0, x_1, ..., x_T|\hat{x}):=p(x_T)\displaystyle\prod_{t=1}^{T}p_{\theta}(x_{t-1}|x_t, \hat{x}), \tag{14} pθ(x0,x1,...,xTx^):=p(xT)t=1Tpθ(xt1xt,x^),(14)其中, x ^ \hat{x} x^为作为条件输入噪声估计网络的退化图像。此时,噪声分布估计变为:
ϵ θ ( x t , t ) → ϵ θ ( x t , x ^ , t ) , (15) \epsilon_\theta(x_t, t)\rightarrow\epsilon_\theta(x_t, \hat{x}, t), \tag{15} ϵθ(xt,t)ϵθ(xt,x^,t)(15) t − 1 t-1 t1时刻的噪化状态 x t − 1 x_{t-1} xt1也由公式 ( 13 ) (13) (13)变为:
x t − 1 = α ‾ t − 1 ( x t − 1 − α ‾ t ⋅ ϵ θ ( x t , x ^ , t ) α ‾ t ) + 1 − α ‾ t − 1 ⋅ ϵ θ ( x t , x ^ , t ) , (16) x_{t-1}=\sqrt{\overline\alpha_{t-1}}(\frac{x_t-\sqrt{1-\overline{\alpha}_t}\cdot\epsilon_\theta(x_t, \hat{x}, t)}{\sqrt{\overline{\alpha}_t}})+\sqrt{1-\overline{\alpha}_{t-1}}\cdot\epsilon_\theta(x_t, \hat{x}, t), \tag{16} xt1=αt1 (αt xt1αt ϵθ(xt,x^,t))+1αt1 ϵθ(xt,x^,t),(16)
实际中,条件的引入由多种方式,最常见的方法是直接通过与噪化状态拼接后作为噪声估计网络的输入。

4. 可以考虑改进的点

以下是我问chatGPT得到的答案:
在这里插入图片描述
我的拙见:

  1. 引入天气退化图像恢复中:虽然扩散模型已经出现众多研究,但在图像去雨、去雾、去雨滴、去雪等方面的研究屈指可数;
  2. 改进噪声估计网络:经典的扩散模型是基于U-Net结构的,主要模块也是卷积 (也包括自注意力),近来有一些研究发现Transformer架构在扩散模型上可以取得更好地效果;
  3. Follow最新的更快地扩散模型:传统的扩散模型要进行图像恢复,一幅图片的处理时长基本都是几十秒,实时性太差,目前有一些研究提出快速反向采样的方法;
  4. 无监督:目前多数给予扩散模型的图像恢复算法仍然是有监督的 (当然不算是监督学习,只是条件生成),可以采用一些无监督策略来利用扩散模型实现图像恢复。

5. 实现代码

完整的用于图像恢复的扩散模型代码见:完整可直接运行代码,其中包括详细的实验操作流程,只需要修改数据集路径即可直接使用。
在这里插入图片描述

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

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

相关文章

红队系列-内网横向

内网横向 渗透测试-内网横向MS-17010利用方法总结原理介绍漏洞利用MSFLadon 渗透测试-从公有云到内网漫游RCE-反序列化-frp0x01 前言0x02 前期打点0x03 想办法打内网0x04对上面的IP进行渗透0x05 愉快的内网漫游 windows凭据窃取MimikatzProcdumpGet-PassHashes.ps1 Windows远程…

75 内建函数对象-关系仿函数

#include <iostream> #include <string> #include <functional> #include <vector> #include <algorithm>using namespace std;//内建仿函数-关系仿函数 // 使用内建函数对象的时候&#xff0c;需要引入头文件 functionalvoid printVector(vecto…

08-中介者模式-C语言实现

中介者模式&#xff1a; Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.&#xff08;用一个中介对…

04 ECharts基础入门

文章目录 一、ECharts介绍1. 简介2. 相关网站3. HTML引入方式4. 基本概念 二、常见图表1. 柱状图2. 折线图3. 饼图4. 雷达图5. 地图 三、应用1. 动画2. 交互 一、ECharts介绍 1. 简介 ECharts是一个使用JavaScript实现的开源可视化库&#xff0c;用于生成各种图表和图形。 EC…

Mysql多表查询 思路 ——示例——sql顺序

参考练习题&#xff1a;https://blog.csdn.net/weixin_49627122/article/details/126380916 SQL顺序 在 SQL 查询中&#xff0c;SELECT 语句的执行顺序不是按照查询语句的书写顺序执行的&#xff0c;而是按照逻辑执行阶段来进行。一般来说&#xff0c;SQL 查询的执行顺序可以…

北斗网格二维编码

东经为 E —— east:东方 西经为 W —— west:西方 南纬为 S —— south:南方 北纬为 N —— north 将计算好的编码添加到列表中 my_list [1, 2, 3] my_list.append(4) 参考文献 一级北斗网格计算 高等地图学作业_已知经纬度求图幅编号_.Vector的博客-CSDN博客 其他级别…

spring面试题—— 事务

一&#xff1a;Spring事物是什么&#xff1f; spring事务的本质是底层数据库对事务的支持&#xff0c;spring并不直接管理事物&#xff0c;而是提供了多种事务管理器&#xff0c;具体的实现由持久化框架自己来做。 二&#xff1a;Spring为什么需要事物&#xff1f; add方法&…

如何使用jszip文件格式转换与批量打包成zip下载

文章目录 概要技术细节文件下载小结 概要 在前端开发中&#xff0c;我们经常需要处理文件的格式转换和下载。本文将介绍如何通过 JavaScript 实现将文件 URL 转换为 Blob 类型格式或者 arraybuffer 格式&#xff0c;并通过 JSZip 库实现文件的压缩和下载。 技术细节 先安装所…

数据清洗、特征工程和数据可视化、数据挖掘与建模的主要内容

1.4 数据清洗、特征工程和数据可视化、数据挖掘与建模的内容 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.4节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学…

vue3.2版本setup语法糖

setup语法糖&#xff1a; 一、Vue3.0 <script>里定义的变量、属性和方法必须 return 出来&#xff0c;<template>中才能使用&#xff1b;这样会导致在页面上变量会出现很多次。vue3.2只需在script标签中添加setup&#xff0c;就可以帮助我们解决这个问题,无需再写…

JVM 对象内存布局篇

对象的实例化 创建对象有哪些方式&#xff1f; 1、new对象 最常见的方式 变形1:X的静态方法 变形2:XxxBuilder/XxxFactory的静态方法 2、Class的newlnstance0:反射的方式&#xff0c;只能调用空参的构造器&#xff0c;权限必须是public 3、Constructor的newinstance(X):反射的…

软件多开助手的创新使用:在同一设备上玩转多个游戏

软件多开助手&#xff1a;在同一设备上玩转多个游戏的创新使用 随着科技的不断发展&#xff0c;手机和电脑已经成为我们生活中必不可少的工具。众多游戏爱好者也越来越追求在同一设备上同时体验多个游戏的乐趣。而软件多开助手的出现为这一需求提供了创新的解决方案。 传统上…

可视化监管云平台EasyCVR宠物粮食食品厂智能视频监控方案

由于我国养宠物群体的不断膨胀&#xff0c;宠物市场也占据了经济的很大一部分&#xff0c;宠物做为人类的好朋友&#xff0c;可以给人们带来极高的精神抚慰&#xff0c;作为“毛孩子”家长&#xff0c;爱宠人士自然不会亏待自家宠物&#xff0c;都会选择最好的口粮以供宠物食用…

【开源】基于Vue+SpringBoot的教学过程管理系统

项目编号&#xff1a; S 054 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S054&#xff0c;文末获取源码。} 项目编号&#xff1a;S054&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2…

CompletableFuture:Java中的异步编程利器

前言&#xff1a; 在秋招的面试中&#xff0c;面试官问了很多关于异步编程相关的知识点&#xff0c;朋友最近也和我聊到了这个话题&#xff0c;因此今天咱们来讨论讨论这个知识点&#xff01; 随着现代软件系统的日益复杂&#xff0c;对于非阻塞性和响应性的需求也在不断增加…

Vue学习计划-Vue2--Vue核心(六)过滤器和自定义指令

1. 过滤器 定义&#xff1a;对要显示的数据进行特定格式转换再显示&#xff08;适用于一些简单逻辑的处理&#xff09;语法&#xff1a; 注册过滤器&#xff1a;Vue.filter(name, callback) 或 new Vue{filters:{}}使用过滤器&#xff1a;{{ xx | 过滤器名 }} 或 v-bind:属性 …

3 文本分类入门finetune:bert-base-chinese

项目实战&#xff1a; 数据准备工作 bert-base-chinese 是一种预训练的语言模型&#xff0c;基于 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;架构&#xff0c;专门用于中文自然语言处理任务。BERT 是由 Google 在 2018 年提出的一…

gpt1与bert区别

区别1&#xff1a;网络结构&#xff08;主要是Masked Multi-Head-Attention和Multi-Head-Attention&#xff09; gpt1使用transformer的decoder&#xff0c;单向编码&#xff0c;是一种基于语言模型的生成式模型&#xff0c;更适合生成下一个单词或句子 bert使用transformer的…

Domino多Web站点托管

大家好&#xff0c;才是真的好。 看到一篇文档&#xff0c;大概讲述的是他在家里架了一台Domino服务器&#xff0c;上面跑了好几个Internet的Web网站&#xff08;使用Internet站点&#xff09;。再租了一台云服务器&#xff0c;上面安装Nginx做了反向代理&#xff0c;代理访问…

轨迹分析:Palantir评估细胞分化潜能 类似于monocle2

轨迹分析是单细胞测序分析中重要的组成部分&#xff0c;它基于细胞谱系之间“具有中间态细胞”的理论基础&#xff0c;通过结合先验知识&#xff08;细胞注释、markers&#xff09;、细胞基因表达改变等&#xff0c;为在单细胞测序数据赋予了“假时间”&#xff08;pseudotime&…