CMU 10423 Generative AI:lec7、8、9(Diffusion Models、VAEs)

文章目录

  • 1 概述
    • lec 7 Diffusion Models (Part I)
    • lec 8 Diffusion Models (Part II)
    • lec 9 Variational Autoencoders (VAEs)
      • 1. **变分推断与KL散度**
      • 2. **变分推断(Variational Inference, VI)**
      • 3. **VAE的结构**
      • 4. **重参数化技巧**
      • 5. **VAE的优化目标**
      • 6. **VAE的应用**
      • 7. **VQ-VAE 和其他变体**
      • 总结:
  • 2 阅读材料概述
    • (1)lec7、8:Deep Unsupervised Learning using Nonequilibrium Thermodynamics(2015)
      • 主要内容介绍:
      • 该论文与扩散模型的关系
        • 1. **正向扩散过程**:
        • 2. **反向扩散过程**:
        • 3. **模型的灵活性和可计算性**:
        • 4. **实验验证**:
        • 总结:
    • (2)lec7、8:Denoising Diffusion Probabilistic Models(2020)
      • 1. **背景与动机**
      • 2. **扩散模型的核心机制**
      • 3. **训练目标与损失函数**
      • 4. **实验结果**
      • 5. **进展与未来工作**
      • 总结:
    • (3)lec9:High-Level Explanation of Variational Inference (2011)
      • 1. **背景与动机**
      • 2. **变分推断的基本思想**
      • 3. **ELBO(证据下界,Evidence Lower Bound)**
      • 4. **优化方法**
      • 5. **应用**
      • 6. **示例与推导**
    • (4)lec9:Tutorial on Variational Autoencoders(2016)
      • 1. **引言**
      • 2. **潜变量模型**
      • 3. **变分自编码器 (VAE)**
      • 4. **VAE 的解释**
      • 5. **条件变分自编码器(CVAE)**
      • 6. **实验与结果**
      • 总结:
    • (5)lec9:Variational Inference: A Review for Statisticians(2018)
      • 1. **背景与动机**
      • 2. **变分推断的核心思想**
      • 3. **ELBO(证据下界)**
      • 4. **优化方法**
      • 5. **变分推断与MCMC的比较**
      • 6. **现代研究与应用**
      • 总结:

Diffusion Models、VAEs这两个模型很重要又很晦涩,其实为了方便理解过度,VAEs应该在Diffusion Models之前介绍(CMU 11785课程中就是先介绍VAE,再介绍Diffusion Models,最后是GANs)。

PPT内容大概扫了一遍,目的是看课程提到哪些知识点。算法的具体原理在下2篇文章中有整理。

1 概述

lec 7 Diffusion Models (Part I)

本讲主要是为后续讲扩散模型(Diffusion Models)做铺垫。介绍了U-Net语义分割网络,以及无监督学习的基本假设、目标和一些经典的生成模型:自回归语言模型(GPT)、生成式对抗网络、扩散模型。最后初步介绍了扩散模型。

lec 8 Diffusion Models (Part II)

首先回顾了语义分割(FCN)、实例分割(Mask RCNN)、U-net、无监督学习等。然后开始大篇幅介绍扩散模型原理。

lec 9 Variational Autoencoders (VAEs)

主要介绍KL散度、变分推断、以及VAE的原理、应用、变种(VQ-VAE)。

以下是该讲义的主要内容:

1. 变分推断与KL散度

  • 讲义首先回顾了KL散度(Kullback-Leibler Divergence)的概念,KL散度用于衡量两个概率分布之间的差异。
  • KL散度在VAE中作为优化目标,用来最小化近似后验分布 (q(z|x)) 和真实后验分布 (p(z|x)) 之间的差异。

2. 变分推断(Variational Inference, VI)

  • 变分推断是VAE背后的核心技术,目的是通过近似推断复杂的后验分布。
  • 讲义提到在面对复杂的模型时,直接计算后验分布是不可行的,因此VI通过使用简化的分布 (q(z)) 来近似目标后验 (p(z|x))。
  • 最大化证据下界(ELBO)是VI的关键步骤,它提供了一个可以优化的下界,用于间接优化后验分布。

3. VAE的结构

  • VAE模型结合了两个神经网络:编码器和解码器。

    • 编码器:将输入数据 (x) 映射到潜在变量 (z) 的分布,表示为 (q(z|x))。
    • 解码器:从潜在变量 (z) 生成输入数据 (x),表示为 (p(x|z))。
  • 讲义从图形模型的角度解释了VAE的结构,VAE可以生成新数据,因为它学到了一个连续的潜在空间,易于采样。

4. 重参数化技巧

  • 为了使VAE可以通过反向传播进行训练,讲义介绍了重参数化技巧。通过将随机变量 (z) 的采样过程与模型参数分离,网络能够有效地计算梯度,从而进行优化。

5. VAE的优化目标

  • VAE的优化目标是最大化证据下界(ELBO),这相当于同时最小化重构误差(保证生成的样本与真实样本接近)和KL散度(确保潜在空间的合理性)。
  • 讲义进一步讨论了ELBO的两部分:一部分是数据重构的对数似然,另一部分是编码分布和先验分布之间的KL散度。

6. VAE的应用

  • 讲义展示了VAE在图像生成和文本生成中的实际应用。
    • 在图像生成方面,VAE可以从潜在空间中生成新的图像,经典的例子包括MNIST手写数字和CelebA人脸数据集。
    • 在文本生成方面,VAE可以用于自然语言处理任务,生成句子或进行语义表达。

7. VQ-VAE 和其他变体

  • 讲义还介绍了Vector Quantized VAE (VQ-VAE),这是VAE的一个离散版本,编码器输出离散的代码,而不是连续的潜在变量。这种方法在图像和音频生成领域取得了成功。

总结:

这份讲义详细阐述了变分自编码器(VAE)的基础概念、结构和实际应用。通过变分推断和重参数化技巧,VAE能够有效地进行无监督学习,并生成高质量的图像或文本。

2 阅读材料概述

(1)lec7、8:Deep Unsupervised Learning using Nonequilibrium Thermodynamics(2015)

https://arxiv.org/pdf/1503.03585

该PDF文件的标题是**“Deep Unsupervised Learning using Nonequilibrium Thermodynamics”**,由Jascha Sohl-Dickstein等人撰写,讨论了一种基于非平衡热力学的新型深度无监督学习方法。

主要内容介绍:

  1. 背景与动机
  • 机器学习中的主要问题之一是如何在模型的灵活性和计算的可行性之间进行平衡。灵活的模型可以很好地拟合复杂数据,但往往难以计算或采样。本文提出了一种新的生成模型,它结合了灵活性和可计算性。
  1. 模型核心思想
  • 该方法的核心思想源自于非平衡统计物理。通过一个正向扩散过程,逐步破坏数据分布中的结构,最终将其转化为一个简单的已知分布(如高斯分布)。
  • 接下来,学习一个反向扩散过程,用于恢复数据的结构,从而生成一个高度灵活且可计算的模型。
  1. 正向和反向扩散过程
  • 正向扩散逐步将数据分布转变为高斯分布,反向扩散则通过学习的均值和协方差函数恢复数据结构。
  • 通过训练,模型可以通过马尔科夫链生成高质量的样本,同时可以有效地计算生成模型的对数似然。
  1. 实验与结果
  • 该模型在多个数据集上进行了测试,包括二维Swiss Roll、MNIST手写数字、CIFAR-10自然图像等。
  • 实验结果表明,模型在这些数据集上的表现优异,生成的样本与原始数据非常接近,且能够进行复杂任务如图像去噪和填补缺失数据(inpainting)。
  1. 与其他工作比较
  • 该模型与对抗生成网络(GAN)、变分自编码器(VAE)等技术进行了比较,展示了其在生成样本和计算后验分布上的优势。
  • 作者强调了该模型在灵活性和可计算性方面的独特性,并且该模型可以通过简单的马尔科夫链逆转来生成样本。

总的来说,本文提出了一种基于非平衡热力学的生成模型,能够灵活地学习和生成复杂数据,并且在无监督学习和概率建模领域展示了非常好的应用潜力。

该论文与扩散模型的关系

这篇文章与扩散模型有非常密切的关系,实际上,它提出的生成模型正是基于扩散过程的。扩散模型是一种生成模型,通过正向扩散(向数据中逐渐引入噪声)和反向扩散(通过学习的反向过程去除噪声)来生成数据。以下是该文章与扩散模型的具体关联:

1. 正向扩散过程
  • 文章中提出了一种逐步将数据分布转换为高斯分布的正向扩散过程。这是扩散模型的核心部分,即通过逐渐添加噪声,破坏数据的原始结构,最终使得数据变成一个已知的简单分布(如高斯分布)。
  • 在该模型中,每一步都是一个马尔科夫链,逐步扩散数据,类似于现代扩散模型中的噪声注入过程。
2. 反向扩散过程
  • 学习一个反向扩散过程来恢复数据结构也是文章的核心思想。与扩散模型类似,反向扩散是通过学习的方式从噪声数据中逐步恢复原始数据分布。
  • 文章中提到的反向扩散过程可以从高斯分布开始,通过一系列马尔科夫步骤逐渐还原为目标数据分布,这与现代扩散模型中从噪声到数据的反向采样过程非常相似。
3. 模型的灵活性和可计算性
  • 文章提出的模型在生成过程中既保持了极大的灵活性,又能进行精确采样。这与扩散模型的目标一致:通过扩散过程,扩散模型可以灵活地生成逼真的数据,同时保持采样和推断的可行性。
  • 该模型可以用于图像生成、数据去噪(denoising)等任务,这些都是扩散模型的重要应用场景。
4. 实验验证
  • 文章中的实验展示了该扩散模型在二维数据(如Swiss Roll)和复杂图像数据(如MNIST、CIFAR-10)上的成功应用。这与扩散模型在图像生成和去噪等任务中的应用非常类似。
总结:

这篇文章可以看作是现代扩散概率模型的一个早期实现,或者说是扩散模型理论的一部分。文章中的正向扩散和反向扩散过程是扩散模型的核心机制,而文章所提出的生成方法在本质上与现在的扩散模型具有极大的相似性。

(2)lec7、8:Denoising Diffusion Probabilistic Models(2020)

https://proceedings.neurips.cc/paper_files/paper/2020/file/4c5bcfec8584af0d967f1ab10179ca4b-Paper.pdf

该文章**《Denoising Diffusion Probabilistic Models》主要介绍了一种基于扩散模型**的深度生成模型,并展示了其在图像生成方面的优异表现。以下是该文章的主要内容介绍:

1. 背景与动机

  • 文章旨在提出一种新的生成模型,通过扩散过程变分推断来生成高质量的图像。传统的生成模型如GAN和VAE虽然取得了很大成功,但也面临一些挑战,如稳定性问题和难以估计的似然值。
  • 扩散模型结合了非平衡热力学的原理,逐步通过马尔科夫链的反向采样生成逼真的图像。

2. 扩散模型的核心机制

  • 正向扩散过程:该过程通过给数据逐步添加噪声,逐渐破坏其结构,最终将其转换为高斯分布。这是一个固定的马尔科夫链。
  • 反向扩散过程:该过程通过学习模型参数,逐步去除噪声,还原数据的结构,从高斯分布采样出高质量的图像。
  • 模型训练是通过优化变分推断中的ELBO(证据下界)进行的,并且与去噪自编码器中的得分匹配(score matching)方法密切相关。

3. 训练目标与损失函数

  • 文章提出了一个简化的训练目标,基于预测在不同噪声水平下的去噪误差。这使得模型训练更简单,同时提升了生成样本的质量。
  • 模型在噪声水平较高的情况下更注重去噪任务,这种重新加权的损失函数提升了生成结果的质量。

4. 实验结果

  • 在CIFAR-10和CelebA-HQ数据集上进行了大量实验,实验结果表明扩散模型生成的图像质量优于很多现有的生成模型,尤其是在无条件图像生成任务中。
  • 模型在无监督的CIFAR-10上获得了9.46的Inception得分和3.17的FID(Fréchet Inception Distance)分数,表现优异。

5. 进展与未来工作

  • 文章展示了扩散模型与其他生成模型(如自回归模型、能量模型和VAE)的联系,并指出扩散模型在处理图像数据方面具有优秀的归纳偏置。
  • 未来的工作可能会涉及扩散模型在其他数据模态(如音频、文本)中的应用,并探索其在其他类型的生成模型中的作用。

总结:

该文章提出了一种基于扩散过程的生成模型,通过训练马尔科夫链的反向过程生成高质量样本。扩散模型的独特之处在于,它能够通过逐步去噪来生成图像,并且与去噪自编码器和Langevin动态过程密切相关。文章的实验结果表明该模型在图像生成任务中具有强大的竞争力。

(3)lec9:High-Level Explanation of Variational Inference (2011)

https://www.cs.jhu.edu/~jason/tutorials/variational.html

这个页面是约翰·霍普金斯大学的Jason Eisner教授撰写的**变分推断(Variational Inference)**教程,主要讲解了变分推断技术的基础理论和应用。该教程通过详细的解释和推导,帮助读者理解变分推断背后的概念和数学基础。

主要内容可以总结如下:

1. 背景与动机

  • 变分推断是一种用于近似复杂概率分布的方法,尤其是在贝叶斯推断中计算后验分布较为困难时。
  • 传统的马尔科夫链蒙特卡洛(MCMC)方法虽然强大,但往往计算量很大。变分推断提供了更高效的近似推断方法。

2. 变分推断的基本思想

  • 目标是通过一个简单的、可处理的分布 ( q(z) ) 来近似复杂的后验分布 ( p(z|x) )。
  • 通过优化 ( q(z) ) 的参数,使得它尽可能接近真实的后验分布。具体而言,变分推断通过最小化 KL 散度(Kullback-Leibler divergence)来度量 ( q(z) ) 和 ( p(z|x) ) 之间的差异。

3. ELBO(证据下界,Evidence Lower Bound)

  • 由于直接计算后验概率很困难,变分推断通过最大化证据下界(ELBO)来间接地优化目标。
  • ELBO 是对数边际似然的一个下界,通过最大化 ELBO,可以逼近真实的后验分布。
  • ELBO 公式:

ELBO ( q ) = E q ( z ) [ log ⁡ p ( x , z ) ] − E q ( z ) [ log ⁡ q ( z ) ] \text{ELBO}(q) = \mathbb{E}_{q(z)}[\log p(x, z)] - \mathbb{E}_{q(z)}[\log q(z)] ELBO(q)=Eq(z)[logp(x,z)]Eq(z)[logq(z)]

  • 这个公式的核心是计算关于 ( q(z) ) 的期望,进而逼近后验分布。

4. 优化方法

  • 在变分推断中,优化问题可以通过梯度下降或其他优化技术来求解。
  • 常用的优化方法有随机梯度变分推断(SGVB),这种方法有效地处理了大规模数据的问题。

5. 应用

  • 变分推断广泛应用于概率图模型中,如隐马尔科夫模型(HMM)、潜在狄利克雷分配(LDA)等。
  • 现代深度学习中的变分自编码器(VAE)也是基于变分推断的一个重要应用。

6. 示例与推导

  • 教程中还包括了具体的示例和数学推导,帮助读者更好地理解如何在实际问题中使用变分推断。

这个教程的目标是为没有太多变分推断背景的读者提供一个清晰的入门介绍,包含了详细的理论推导以及在实际应用中的操作步骤。

(4)lec9:Tutorial on Variational Autoencoders(2016)

https://arxiv.org/pdf/1606.05908

这篇文章是由Carl Doersch撰写的《Tutorial on Variational Autoencoders》,介绍了变分自编码器(VAE)的基本概念、原理和实际应用。以下是文章的主要内容介绍:

1. 引言

  • 文章首先介绍了生成模型的概念,其目的是从数据分布中生成类似的样本,如生成新的手写数字或自然图像。传统的生成模型方法,如马尔科夫链蒙特卡洛方法,存在计算复杂度高等问题。VAE 提供了一种基于神经网络的更高效的生成模型。

2. 潜变量模型

  • 潜变量模型假设数据是通过一些隐藏的潜在因素生成的。VAE 引入潜变量 ( z ),用于捕捉数据中的结构信息,如生成手写数字时的字体类型、角度和粗细等。

3. 变分自编码器 (VAE)

  • 目标设置:VAE 的目标是通过最大化似然函数 ( P(X) ) 来逼近数据分布。由于直接计算该分布较为困难,VAE 引入了变分推断,通过引入一个辅助分布 ( Q(z|X) ) 来近似后验分布 ( P(z|X) )。
  • 优化目标:VAE 优化的是证据下界(ELBO),通过最大化下界来近似最大化对数似然。公式为:

log ⁡ P ( X ) ≥ E Q ( z ∣ X ) [ log ⁡ P ( X ∣ z ) ] − D K L ( Q ( z ∣ X ) ∣ ∣ P ( z ) ) \log P(X) \geq E_{Q(z|X)}[\log P(X|z)] - D_{KL}(Q(z|X)||P(z)) logP(X)EQ(zX)[logP(Xz)]DKL(Q(zX)∣∣P(z))

其中,第一项表示重构误差,第二项是 KL 散度,表示潜变量分布与真实后验分布之间的差异。

  • 重参数化技巧:为了使得模型能够通过反向传播进行优化,VAE 引入了重参数化技巧,将随机噪声从潜在空间中提取出来。

4. VAE 的解释

  • 信息论角度:VAE 的目标可以解释为最小描述长度原理,左侧的对数似然表示生成数据所需的最少信息量,右侧的 KL 散度则表示潜变量的编码效率。
  • 正则化:VAE 的 KL 散度项可以视为一种正则化项,防止潜变量空间过拟合。

5. 条件变分自编码器(CVAE)

  • CVAE 扩展了 VAE,允许生成带条件信息的数据。例如,给定部分图像信息,CVAE 可以生成相应的图像补全。这在图像修复等任务中非常有用。

6. 实验与结果

  • MNIST 手写数字生成:文章展示了在 MNIST 数据集上训练的 VAE 和 CVAE 的实验结果。VAE 可以生成逼真的手写数字,而 CVAE 可以在给定部分信息的情况下补全图像。

总结:

该文章为初学者提供了 VAE 的详细教程,涵盖了从基础理论到实际应用的内容。VAE 是一种强大的生成模型,能够通过潜变量模型高效地生成复杂的数据,并在无监督学习和生成建模中有广泛的应用。

(5)lec9:Variational Inference: A Review for Statisticians(2018)

https://arxiv.org/pdf/1601.00670

这篇文章**《Variational Inference: A Review for Statisticians》**主要综述了变分推断(Variational Inference, VI)的基本思想、方法和应用。以下是文章的主要内容:

1. 背景与动机

  • 现代统计学的核心问题之一是如何近似难以计算的概率密度,特别是在贝叶斯统计中,需要对后验分布进行计算。传统的MCMC方法虽然有效,但在面对大规模数据时往往计算量大且效率低。变分推断通过优化的方式快速近似这些复杂的概率密度,因此逐渐成为一种常用的方法。

2. 变分推断的核心思想

  • VI 的核心思想是首先假设一族概率分布,并找到其中与目标后验分布最接近的一个。通常使用KL散度(Kullback-Leibler Divergence)来度量近似分布和目标分布之间的差异。
  • 具体来说,通过最小化变分分布 (q(z)) 和目标后验分布 (p(z|x)) 之间的KL散度,得到最优近似分布 (q^*(z))。

3. ELBO(证据下界)

  • 由于直接计算后验分布的KL散度非常困难,VI 通过最大化证据下界(ELBO)来间接地优化目标。ELBO 表达式为:

ELBO ( q ) = E q ( z ) [ log ⁡ p ( x , z ) ] − E q ( z ) [ log ⁡ q ( z ) ] \text{ELBO}(q) = E_{q(z)}[\log p(x, z)] - E_{q(z)}[\log q(z)] ELBO(q)=Eq(z)[logp(x,z)]Eq(z)[logq(z)]

  • 最大化ELBO相当于最小化KL散度,从而使得 (q(z)) 逼近后验分布 (p(z|x))。

4. 优化方法

  • 文章讨论了如何通过坐标上升(coordinate ascent)来优化ELBO,这种方法逐步优化每个潜变量的分布,直到收敛到局部最优值。
  • 还介绍了如何利用自然梯度和随机优化(stochastic optimization)来扩展变分推断,从而在大规模数据上进行有效推断。

5. 变分推断与MCMC的比较

  • 与MCMC不同,VI 是通过优化问题来进行推断,而不是通过采样。VI 在大数据场景下更快且更容易扩展,但可能无法提供MCMC的精确性保证。
  • VI 常用于需要快速探索多种模型或处理大规模数据的场景,而MCMC更适用于需要高精度的小规模数据分析。

6. 现代研究与应用

  • 文章列举了变分推断在现代贝叶斯统计中的多种应用,如大规模文档分析、计算神经科学和计算机视觉。
  • VI 尽管功能强大,但仍有许多统计性质尚不完全清楚,因此未来在统计领域还有很多研究机会。

总结:

该文章提供了对变分推断的全面综述,特别针对统计学家。它解释了VI的基本原理、与其他方法的比较、优化算法的细节,以及在大规模数据上的应用。

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

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

相关文章

黑马头条day1 环境搭建 SpringCloud微服务(注册发现,服务调用,网关)

Nacos 环境搭建 Vmvare打开已经安装好的虚拟机镜像环境 使用findshell作为链接工具 和MobaXterm差不多 初始工程搭建 项目导入到idea 里边 这个项目都是用的比较老的东西 jdk1.8 甚至把仓库也提供好了 主体机构 common 就是通用的配置 feign 是对外的接口 model …

css五种定位总结

在 CSS 中,定位(Positioning)主要有五种模式,每种模式的行为和特点不同,以下是 static、relative、absolute、fixed 和 sticky 五种定位方式的对比总结: 1. static(默认定位) 特性…

“中秋快乐”文字横幅的MATLAB代码生成

中秋快乐呀朋友们!!! 给大家带来一个好玩的代码,能够生成“中秋快乐”的横幅文字,比较简单,当然你也可以根据自己的需求去更改文字和背景,废话不多说,直接展示。 文字会一直闪烁&…

计算机毕业设计 基于SpringBoot框架的网上蛋糕销售系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

基于Springboot+vue的音乐网站

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了音乐网站的开发全过程。通过分析音乐网站管理的不足,创建了一个计算机管理音乐网站的方案。文章介绍了音乐网站的系统分析部分,包括可行性分析…

如何在Mac上安装多个Python环境

如何在Mac上安装多个Python环境 简介 在你的Mac上使用多个Python环境可以对项目管理很有帮助,特别是在同时处理不同Python版本或不同的包需求时。在这篇文章中,我们将向你展示如何在Mac上轻松地安装和管理多个Python环境。 一. 安装Conda Conda是一个包管理和环境管理系统…

深度学习 之 常见损失函数简介:名称、作用及用法

引言 在机器学习和深度学习中,损失函数(Loss Function)是模型训练过程中一个不可或缺的部分。它用来度量模型预测结果与真实值之间的差异,从而指导模型参数的优化。合理选择损失函数对于提高模型的准确性和泛化能力至关重要。本文…

代码随想录训练营第36天|二维背包

1049. 最后一块石头的重量 II class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sumaccumulate(stones.begin(),stones.end(),0);int targetsum/2;vector<int> dp(target1,0);for(auto& stone: stones){for(int itarget; i>s…

Ansible——Playbook基本功能

文章目录 一、Ansible Playbook介绍1、Playbook的简单组成1&#xff09;“play”2&#xff09;“task”3&#xff09;“playbook” 2、Playbook与ad-hoc简单对比区别联系 3、YAML文件语法&#xff1a;1. 基本结构2. 数据类型3. 列表4. 字典&#xff08;映射&#xff09;5. 注释…

免费表格图片识别成表格小工具

自动提取图片中的文字&#xff0c;并按照表格的格式整理好 需要的自取吧&#xff0c;下载地址&#xff1a;https://pan.quark.cn/s/f4b1ac62b808

问题:博途与kepserver通讯,kepserver读取变量数为啥对不上呢

回答&#xff1a; 1500中该变量为浮点数&#xff0c;在kepserver选择成DWORD当DINT显示了&#xff0c;将数据类型设成与1500一致。 #PLC##西门子工业支持中心##西门子##博途#工控人加入PLC工业自动化精英社群

C#图像爬虫实战:从Walmart网站下载图片

无论是电子商务网站、社交媒体平台还是新闻门户&#xff0c;图像都扮演着至关重要的角色。对于开发者来说&#xff0c;能够自动化地从这些网站下载图片是一项非常有用的技能。本文将介绍如何使用C#语言和CsQuery库来创建一个图像爬虫&#xff0c;专门用于从Walmart网站下载图片…

牛客周赛 Round 59(思维、构造、数论)

文章目录 牛客周赛 Round 59(思维、构造、数论)A. TDB. 你好&#xff0c;这里是牛客竞赛C. 逆序数&#xff08;思维&#xff09;D. 构造mex&#xff08;构造&#xff09;E. 小红的X型矩阵F. 小红的数组回文值&#xff08;数论、范德蒙恒等式&#xff09; 牛客周赛 Round 59(思维…

数字IC设计\FPGA 职位经典笔试面试整理--语法篇 Verilog System Verilog(部分)

注&#xff1a; 资料都是基于网上一些博客分享和自己学习整理而成的 Verilog 1. 数据类型 Verilog一共有19种数据类型 基础四种数据类型&#xff1a;reg型&#xff0c;wire型&#xff0c;integer型&#xff0c;parameter型 reg型   reg类型是寄存器数据类型的关键字。寄存…

新手学习Python第十一天,准备今天全部学完系列

——早上07&#xff1a;30到达实验室&#xff0c;开始学习&#xff0c;中秋小长假已过&#xff0c;心已收—— 一、__new__与__init__创建对象的过程 class Person(object):def __new__(cls,*args,**kwargs): *表示位置参数&#xff0c;**表示关键字参数print(__new__被调用…

快来尝尝,超赞的食家巷一窝丝

一窝丝&#xff0c;这个名字听起来就充满了诗意和神秘。当你第一次见到它时&#xff0c;定会被它那精致的外形所吸引。纤细如丝&#xff0c;盘绕在一起&#xff0c;宛如一个精美的艺术品。那丝丝缕缕&#xff0c;散发着淡淡的麦香味&#xff0c;仿佛在诉说着古老的故事。 制作食…

Imagen论文简要解析

Imagen论文简要解析 文章 Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding 具有深度语言理解能力的逼真文本到图像扩散模型 https://arxiv.org/pdf/2205.11487 摘要 文章介绍了一种名为Imagen的文本到图像扩散模型&#xff0c;该模型在理…

9.12日常记录

1.extern关键字 1&#xff09;诞生动机:在一个C语言项目中&#xff0c;需要再多个文件中使用同一全局变量或是函数&#xff0c;那么就需要在这些文件中再声明一遍 2&#xff09;用于声明在其他地方定义的一个变量或是函数&#xff0c;在当前位置只是声明&#xff0c;告诉编译器…

【鸿蒙 HarmonyOS NEXT】popup弹窗

一、背景 给组件绑定popup弹窗&#xff0c;并设置弹窗内容&#xff0c;交互逻辑和显示状态。 常见场景&#xff1a;点击按钮弹出popup弹窗&#xff0c;并对弹窗的内容进行交互逻辑处理&#xff0c;如&#xff1a;弹窗内点击跳转到其他页面 二、给组件绑定Popup弹窗 PopupOp…

【Python报错已解决】 TypeError: Descriptors cannot not be created directly

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…