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

第43周:GAN总结

目录

摘要

Abstract

计算机视觉中的分类

架构变体

损失变体 

时间序列中的GAN

连续型GAN

离散型GAN 

总结


摘要

本周总结了GAN的变形,主要从图像处理和时间序列生成两部分入手,分别找出了其中比较经典的几种GAN变种模型,简单分析了其结构图以及损失函数的变化。阅读了相关GAN变种的原始文献以及综述,了解到了不同变种GAN模型的优缺点和相对于原始GAN的问题解决状况。

Abstract

This week, we summarized the variations of GAN, mainly focusing on image processing and time series generation. We identified several classic GAN variant models and briefly analyzed their structural diagrams and changes in loss functions. I have read the original literature and reviews related to GAN variants, and gained an understanding of the advantages and disadvantages of different variant GAN models, as well as their problem-solving status relative to the original GAN. 

原始GAN的目标表达式

 

前面的学习中已经做过完整的推导 

原始GAN遇到的问题:

1)生成高质量的图像;

2)生成图像的多样性;

3)稳定的训练。 

GAN分类总结

计算机视觉中的分类

我们将当前的GANs分为两种主要的变体,即架构变体损失变体

架构变体

在架构变体上,我们分别归纳了网络架构、潜在空间和应用重点三大类。

网络架构是指对GAN体系结构的整体改进或修改,如在PROGAN中部署的渐进机制。

潜在空间这一类别表明,结构修改是基于潜在空间的不同表示进行的,例如,CGAN涉及编码到生成器和判别器的标签信息。

应用重点是指根据不同的应用进行修改,例如CycleGAN有专门处理图像风格迁移的架构。

损失变体 

在损失变体方面,我们将其分为损失类型和正则化两类。

损失类型是指针对GANs优化的不同损失函数,损失函数分为基于积分概率度量(IPM)的损失函数和基于非积分概率度量(Non-IPM)的损失函数。我们将在基于IPM的GANs中,判别器被限制在一个特定的函数类,例如WGAN中的鉴别器被限制在1-Lipschitz。基于非IPM的GANs中的判别器没有这样的约束。

正则化是指对损失函数设计额外的惩罚对网络进行任何类型的归一化操作。基于非IPM的GANs中的判别器没有被限定到特定函数的约束。

network architecture

1.1.1 LAPGAN

 LAPGAN是一种用于生成高分辨率图像的生成对抗网络(GAN)变体,其核心思想是结合拉普拉斯金字塔结构和条件对抗生成网络(CGAN),通过分层的方式逐步生成高质量的图像

 

1.1.2 DCGAN

DCGAN是生成对抗网络(GAN)的一个重要变体,它通过引入CNN的架构改进了传统GAN的训练稳定性和生成质量。DCGAN的思想主要集中在如何将卷积神经网络的强大特征提取能力与GAN的生成对抗机制相结合,从而实现更高效、更稳定的图像生成。

问题:最大池化层会导致信息丢失

解决:将池化层用微步幅卷积层代替,既能避免上述问题,而且对于上下采样更加灵活

在生成器和判别器中,微步幅卷积层来代替pooling层,下图是反卷积和微步幅卷积的区别:

 

上图左边是反卷积,它是整个矩阵的周围添0;右边是微步幅卷积,它是将矩阵拆开在每个像素点周围添0。

1.1.3 BEGAN

BEGAN(Boundary Equilibrium GAN,边界平衡生成对抗网络)是一种基于自编码器的生成对抗网络,其核心思想是通过平衡生成器和判别器的训练,解决传统GAN训练过程中的不稳定性和model collapse问题

 

latent space

1.2.1 cGAN

CGAN(Conditional Generative Adversarial Network)是生成对抗网络(GAN)的一种变体。它的基本思想是,使生成器能够生成与给定条件相匹配的合成数据,而判别器则负责区分真实数据和生成数据。相比于GAN,它引入了条件信息(y),使得生成器可以生成与给定条件相匹配的合成数据,从而提高了生成数据的可控性和针对性。

问题:只能产生出清晰的图片,但并不能判断其是否符合需要的条件

解决:在判别器的输入中增添一个condition,最终判别图片真伪时需要考虑到是否符合该条件c的描述

cGAN的目标表达式的推导如下: 

cGAN是半监督学习,所以生成器的输入是一组数据(文字描述,图像)

解决问题:当原始数据非常复杂,而判别器又无法传递出更细节的信息时,生成器自然无法生成能够以假乱真的“假数据”。也就是说,原始GAN中的生成器的输入都是随机产生的噪音。 

1.2.2 BiGAN

BiGAN(Bidirectional Generative Adversarial Networks,双向生成对抗网络)是生成对抗网络(GAN)的一种扩展,其核心思想是通过引入编码器(Encoder)来学习从真实数据到潜在空间的逆映射,从而更好地支持生成器(Generator)生成更具有语义丰富性的合成数据。 

解决问题:原始GAN只能从潜在空间生成数据,但无法将数据映射回潜在空间。BiGAN通过引入编码器 E,实现了从数据空间到潜在空间的逆映射,使得模型能够双向操作。 

1.2.3 SGAN

SGAN(Semi-Supervised GAN,半监督生成对抗网络)是一种结合了半监督学习和生成对抗网络(GAN)的模型,旨在通过少量标注数据大量未标注数据来提升分类性能,同时生成高质量的样本。

可以从上述网络架构图中看出,训练集分为有标签和无标签的两类样本数据,generator将随机噪声变成伪样本,将有标签的真实样本和无标签的真伪样本都放入discriminator中进行半监督的判别。

解决问题:原始GAN是无监督的训练状态,SGAN在discriminator中引入了监督机制。能够提高模型生成的稳定性,一定程度上减少原始GAN的model collapse的问题 

1.3.1 CycleGAN

CycleGAN(循环一致性生成对抗网络)是一种用于无监督图像到图像转换的深度学习模型,其核心思想是通过循环一致性损失来实现两个不同域之间的图像转换,而无需成对的训练数据。 

 

1.3.2 SRGAN

SRGAN(Super-Resolution Generative Adversarial Networks,超分辨率生成对抗网络)是一种用于图像超分辨率重建的深度学习模型,结合了生成对抗网络(GAN)和残差网络(ResNet)的架构,能够生成高质量的高分辨率图像。 其中生成器采用深度残差SRResNet的网络架构,

 

这里的generator是将低分辨率的图像经过残差和卷积之后生成高分辨率的图像;discriminator则是用来区分高分辨率和低分辨率的图像,也就充当了一个“二元分类器”的作用。

loss types 

2.1.1 RGAN

RGAN(Relativistic Generative Adversarial Networks,相对生成对抗网络)是一种改进的生成对抗网络架构,其核心思想是通过引入相对性判别信息,优化生成器和判别器的训练过程,从而提高生成质量和训练稳定性。 

与原始GAN不同的点来说,RGAN在提升伪数据是真实的概率的同时还应该降低真实数据是真实的概率。

 相对判别器的损失函数与原始GAN的discriminator不同,目标式如下:

2.1.2 WGAN

WGAN(Wasserstein GAN)是一种改进的生成对抗网络(GAN)架构,其核心思想是通过引入Wasserstein距离来替代传统的JS散度,从而解决传统GAN在训练过程中存在的不稳定性、梯度消失和模式坍塌等问题。

WGAN的目标式如下: 

 

关于这个表达式,D 被加上了 1-Lipschitz function(如下图)的限制:

由于原始GAN使用的是JS-divergence所以其被限制到(0,1)之间,但是WGAN采用Wasserstein距离没有上下界,会导致该函数无法收敛,所以需要有限制函数“1-Lipschitz function

问题:一般来说,discriminator的判别效果越好,梯度消失的程度就越严重 

解决:EM距离能够更好的衡量P_GP_{data}之间的距离

遗留问题:Was距离的计算方式并不是很严格,一般WGAN采用的是Weight Clipping方法,P_GP_{data}只能保证不被无限拉远(不收敛),但是无法保证其被约束在1-Lipschitz function中。

regularization 

2.2.1 WGAN-GP

WGAN-GP(Wasserstein GAN with Gradient Penalty)是WGAN的改进版本,其核心思想是通过引入梯度惩罚(Gradient Penalty)来替代WGAN中的权重裁剪(Weight Clipping),从而进一步提升训练的稳定性和生成质量

解决问题:解决了原始WGAN无法被约束的问题 

可以看出, 1-Lipschitz function的等价形式如下:

在目标函数D(x)可微的情况下,函数均满足约束条件;但是不可微时则不一定满足,所以我们需要统计这些不满足约束条件的项,让其得到一定的“惩罚”,其中不满足条件的采样点分布应该位于P_GP_{data}之间,定义该“受惩罚”分布为P{penalty}

其改进后的目标式如下:

 

2.2.2 SN-GAN 

 SN-GAN(Spectral Normalization GAN,谱归一化生成对抗网络)是一种通过引入谱归一化技术来稳定生成对抗网络训练的方法。其核心思想是通过约束判别器中每一层的谱范数,来控制判别器的Lipschitz常数,从而避免训练过程中的梯度爆炸和不稳定

step1 初始化

对于每一层l,都初始化一个向量\tilde{u}_l 

step2 更新每层

2.1 应用幂迭代

2.2 计算谱归一化权重

2.3 用SDG更新权重 

时间序列中的GAN

连续型GAN

连续时间序列生成涉及生成具有时间依赖性的实值序列,其中序列的元素是连续的,例如温度、压力、速度等物理量。应用于气象监测、工业测控等。

在生成连续时间序列时,GANs可以直接应用于连续数据的生成,通过生成器生成连续值,判别器评估生成数据与真实数据的相似度。

2.1.1 TimeGAN

TimeGAN 提供了一个框架,该框架利用了传统的无监督 GAN 训练方法和更可控的监督学习方法。通过将无监督 GAN 网络与有监督自回归模型相结合,该网络旨在生成具有保留时间动态的时间序列。

框架的输入被认为由两个元素组成,一个静态特征和一个时间特征。s 表示编码器输入端的静态特征向量,x 表示时间特征向量。 

离散型GAN 

离散时间序列生成涉及生成具有时间依赖性的序列,其中序列的元素通常是离散的,例如整数或分类标签。应用于自然语言处理、医疗健康、金融等。

GAN在生成离散序列时,需要特殊设计,如使用策略梯度方法来优化生成器,因为离散数据的生成涉及到非连续的输出空间。

2.2.1 Sequence GAN (SeqGAN)

SeqGAN 的生成模型由带有 LSTM 单元的 RNN 组成,其判别模型是卷积神经网络 (CNN)。给定结构化序列的数据集,作者训练 G 生成合成序列 Y1:T = (y1…, yt…, yT ), yt ∈ Y 其中 Y 定义为候选标记的词汇表。G 通过策略梯度和对 D 的预期奖励的蒙特卡罗 (MC) 搜索进行更新。

 

2.2.2 Quant GAN

Quant GAN 是一种数据驱动模型,旨在捕捉金融时间序列数据(如波动率集群)中的长期依赖关系。生成器和鉴别器都使用带有跳跃连接的时间卷积网络(TCN),它本质上是膨胀的因果卷积网络。它们的优点是适合对连续序列数据中的长期依赖关系进行建模。

 

2.2.3 C-RNN-GAN

C-RNN-GAN的生成器是一个 RNN,鉴别器是一个双向 RNN,它允许鉴别器在两个方向上获取序列上下文。 

 

C-RNN-GAN 通过时间反向传播 (BPTT) 和小批量随机梯度下降进行训练,并在 G 和 D 的权重上使用 L2 正则化。 

总结

本周总结概括了GAN的不同变种,了解了GAN的发展历程。GAN原本用于图像处理,对其变种进行分类——改变网络结构或者改变损失函数。接着又将用于时间序列生成的GAN进行变种分类——离散型和连续型。这周还对cycleGAN进行了具体的项目实践,下周进行具体的描述和总结。

相关文章:

第43周:GAN总结

目录 摘要 Abstract 计算机视觉中的分类 架构变体 损失变体 时间序列中的GAN 连续型GAN 离散型GAN 总结 摘要 本周总结了GAN的变形,主要从图像处理和时间序列生成两部分入手,分别找出了其中比较经典的几种GAN变种模型,简单分析了…...

安卓基础(MediaProjection)

1. Display 类 ​​作用​​:代表显示设备(手机屏幕、外接显示器)​​常用方法​​: display.getRotation() // 获取屏幕方向(横屏/竖屏) display.getRefreshRate() // 获取屏幕刷新率(如&…...

Android Compose 物联网(IoT)UI 组件库封装指南

Android Compose 物联网封装组件 在物联网(IoT)应用开发中,使用Jetpack Compose可以创建现代化、响应式的用户界面。以下是一些针对物联网场景的Compose封装组件思路和实现方法: 常用物联网组件封装 1. 设备状态指示器 Composable fun DeviceStatusI…...

实用在线工具箱OmniTools

简介 OmniTools 是一个自托管的网络应用,提供多种在线工具,旨在简化日常任务。它包含了一系列独立的、小型但实用的工具,涵盖了文件处理、文本操作、网络请求、系统监控等多个方面。 OmniTools 的设计理念是简单、易用、可定制,方…...

【AI大模型学习路线】第一阶段之大模型开发基础——第三章(大模型实操与API调用)单轮对话与多轮对话调用。

【AI大模型学习路线】第一阶段之大模型开发基础——第三章(大模型实操与API调用)单轮对话与多轮对话调用? 【AI大模型学习路线】第一阶段之大模型开发基础——第三章(大模型实操与API调用)单轮对话与多轮对话调用&…...

数字化转型进阶:26页华为数字化转型实践分享【附全文阅读】

本文分享了华为数字化转型的实践经验和体会。华为通过数字化变革,致力于在客户服务、供应链、产品管理等方面提高效率,并把数字世界带入每个组织,构建万物互联的智能世界。华为的数字化转型愿景是成为行业标杆,通过推进数字化战略、构建面向业务数字化转型的IT组织阵型、坚…...

Go语言的优势与应用场景 -《Go语言实战指南》

一、 Go语言的五大核心优势 1. 语法简洁,开发高效 Go语言借鉴了C语言的表达方式,但去掉了多余复杂的特性(如继承、多态、异常处理等),语法风格清晰明了,极大地降低了学习成本: • 无需头文件…...

3D人物关系图开发实战:Three.js实现自动旋转可视化图谱(附完整代码)

3D人物关系图开发实战:Three.js实现自动旋转可视化图谱 效果核心解析场景初始化自动旋转控制器节点创建(带图片和标签)关系连线动画循环数据格式说明 代码 效果 本文将带您使用Three.js实现一个带自动旋转功能的3D人物关系图谱,核…...

文件操作-

1. 为什么使⽤⽂件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化…...

硬件零基础入门(尚硅谷)

1 一个碳原子有一个自由电子。所以能够导电。 金刚石四个都是都弄成共价键了,所以没有自由电子不能自由电子。 2 新的电子进来,因为互斥电荷进行了定向运动,产生了能量。两边电子平衡就停止了。所以电池的负极有电子。 电荷就是质子和电…...

【Ai零件】高德开放平台MCP的API-key注册

前言 基本操作文档,为n8n等平台,调用高德MCP服务做准备,本文记录其API-Key的生成步骤。 操作步骤 高德开发平台官网:https://lbs.amap.com/ 完成后,进入控制台界面: 创建新应用 进入【应用管理】,点击页…...

安卓基础(startActivityForResult和onActivityResult)

onActivityResult 方法有三个参数: requestCode:启动 Activity 时传入的请求码,用于区分不同的启动请求。resultCode:返回结果的状态码,通常为 RESULT_OK 或 RESULT_CANCELED。data:一个 Intent 对象&…...

安卓基础(悬浮窗)

悬浮窗 import android.app.Service; import android.content.Context; import android.graphics.PixelFormat; import android.os.IBinder; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager…...

《windows GCC 版本升级到9以上》

《windows GCC 版本升级到9以上》 在 Windows 系统上升级 GCC 到 9 以上版本通常有两种主流方案:MinGW-w64 和 WSL(Windows Subsystem for Linux)。以下是具体操作步骤: 方案一:使用 MinGW-w64(原生 Windows 环境) 步骤 1:安装 MSYS2 MSYS2 是 Windows 上的软件分发…...

LeetCode —— 102. 二叉树的层序遍历

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…...

Python面向对象编程实战:从类定义到高级特性的进阶之旅(2/10)

摘要:本文介绍面向对象编程基础概念,包括类与对象、封装、继承和多态等。以Python语言为例,详细讲述了类的定义与使用、构造函数与析构函数、类的访问控制等。面向对象编程通过将数据和操作封装在一起,提高代码的模块化和可维护性…...

【AI论文】DeepCritic:使用大型语言模型进行有意识的批判

摘要:随着大型语言模型(LLMs)的快速发展,对其输出提供准确的反馈和可扩展的监督成为一个紧迫而关键的问题。 利用LLM作为评判模型来实现自动化监督是一种有前景的解决方案。 在这项工作中,我们专注于研究和提高LLM的数…...

硬件工程师面试常见问题(12)

第五十六问:PCI总线基本知识 关于PCI总线的描述,错误的是:(A)(4分) A.PCI总线是一个16位宽的总线。 B.PCI的地址线与数据线是复用的。 C.PCI是一种独立于处理器的总线标准,可以支持多种处理器。 D.PCI支持即插即用功能。 解释: …...

大数据Spark(五十八):Spark Pi介绍

文章目录 Spark Pi介绍 Spark Pi介绍 Spark Pi是Apache Spark官方提供的一个示例程序,该案例使用 Spark 进行分布式计算,通过蒙特卡罗方法估算圆周率(π)的值,其估算π原理如下: 上图中,正方形…...

深入理解 HttpExchange_Java 中构建 HTTP 服务的基础组件

1. 引言 1.1 Java 中的轻量级 HTTP 服务需求 随着微服务、工具类应用和嵌入式系统的兴起,开发者对轻量级 HTTP 服务的需求日益增长。相比引入庞大的框架(如 Spring Boot),使用 JDK 原生 API 构建 HTTP 服务成为一种快速、低依赖的替代方案。 JDK 提供了 com.sun.net.htt…...

MaC QT 槽函数和Lambda表达式

在C Qt框架中&#xff0c;槽函数&#xff08;Slot&#xff09;是一种特殊的成员函数&#xff0c;用于响应信号&#xff08;Signal&#xff09;的触发&#xff0c;从而实现对象间的通信和事件处理。 #include<QMessageBox>//包含槽函数的头文件 //定义槽函数 响应特定的信…...

JMM 与 JVM 运行时数据区有什么区别和联系?

JMM&#xff08;Java Memory Model&#xff09;和 JVM 运行时数据区&#xff08;JVM Runtime Data Areas&#xff09;是 Java 内存管理中的两个不同但密切相关的概念。 1. JVM 运行时数据区 (JVM Runtime Data Areas) 是什么&#xff1f; JVM 运行时数据区是 JVM 在程序执行过程…...

LeetCode Hot100题解

目录 一、数组 & 字符串 1. 两数之和&#xff08;简单&#xff09; 2. 删除有序数组中的重复项&#xff08;简单&#xff09; 3. 移除元素&#xff08;简单&#xff09; 4. 合并两个有序数组&#xff08;简单&#xff09; 5. 买卖股票的最佳时机&#xff08;简单&…...

基于Jenkins的DevOps工程实践之Jenkins共享库

文章目录 前言Jenkins共享库结构1、共享库演示2、知识点补充3、实践使用共享库格式化输出日志4、groovy基础语法4.1、 什么是 Groovy&#xff1f;4.2、groovy特点4.3、运行方法4.4、标识符4.5、基本数据类型4.5.1、string类型4.5.2、list类型 4.6、函数使用4.7、正则表达式 5、…...

【安装指南】Docker 安装最新版 Nginx 并进行项目的编排

目录 一、Nginx 的介绍 1.1 开源版 Nginx​ ① 访问路由​ ② 反向代理​ ③ 负载均衡​ ④ 内容缓存​ ⑤ 可编程​ 1.2 商业版 Nginx Plus​ ① 负载均衡​ ② 动态管理​ ③ 安全控制​ ④ 状态监控​ ⑤ Kubernetes Ingress Controller​ ⑥ 流媒体​ 1.3 扩…...

MFC自定义控件开发与使用指南

MFC自定义控件开发与使用指南 1. 概述 MFC(Microsoft Foundation Classes)框架提供了丰富的内置控件,但在实际开发中,我们常常需要创建自定义控件来满足特定的界面需求。本文将详细介绍如何在MFC中开发自定义控件,并以CCustomTextControl为例,展示自定义控件的实现和使…...

Learning vtkjs之PolyDataNormals

法线可视化 介绍 polydata法线可视化 效果 核心代码 主要流程 const fullScreenRenderer vtkFullScreenRenderWindow.newInstance({background: [0, 0, 0],rootContainer: vtkContainerRef.current,});const renderer fullScreenRenderer.getRenderer();const renderWind…...

DeepSeek辅助学术写作之提交和出版以及评审过程分析提示词分享祝你顺利毕业~

目录 1.提交和出版 2.评审过程 大家好这里是AIWritePaper官方账号&#xff0c;官网&#x1f449;AIWritePaper~ 宝子们可以使用小编精选的“ChatGPT研究论文提示词”集合来创建研究论文。利用DeepSeek的智能回应生成详尽有效的内容&#xff0c;这样可以加快研究论文的策划、创…...

基于机器学习的心脏病数据分析与可视化(百度智能云千帆AI+DeepSeek人工智能+机器学习)健康预测、风险评估与数据可视化 健康管理平台 数据分析与处理

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

Kubernetes(k8s)学习笔记(四)--入门基本操作

本文通过kubernetes部署tomcat集群&#xff0c;来学习和掌握kubernetes的一些入门基本操作 前提条件 1.各个节点处于Ready状态&#xff1b; 2.配置好docker镜像库(否则会出现ImagePullBackOff等一些问题)&#xff1b; 3.网络配置正常(否则即使应用发布没问题&#xff0c;浏…...

在Java项目中实现本地语音识别与热点检测,并集成阿里云智能语音服务

引言 随着语音交互技术的发展&#xff0c;如何高效地处理用户的语音输入成为许多应用的重要课题。本文将详细介绍如何在一个Java项目中同时实现&#xff1a; 基于Vosk的本地语音识别&#xff1a;无需调用云端API即可完成语音到文本的转换。本地热点语音内容识别&#xff1a;对…...

C++八股--5--设计模式--适配器模式,代理模式,观察者模式

3. 观察者模式&#xff08;也叫做观察者-监听者模式&#xff0c;发布-订阅模式&#xff09; 主要关注对象的一对多关系&#xff0c;也就是多个对象都依赖于一个对象&#xff0c;当该对象状态改变时&#xff0c;其余对象都能得到对应的通知 如&#xff1a;一组数据&#xff08;数…...

Ubuntu下安装Node.js

一、引言 Ubuntu下安装Node.js主要有两种方式&#xff1a;通过apt安装和通过源码安装。本文主要讲解通过apt安装Node.js的方法。 二、通过apt安装Node.js 安装Node.js&#xff1a; apt install nodejs 我之前已经安装过了&#xff0c;所以提示&#xff1a;“nodejs 已经是最…...

用单目相机和apriltag二维码aruco实现单目定位

目录 一、核心流程与代码框架 1. ‌环境准备‌ 2. ‌ArUco定位实现 3. ‌AprilTag定位实现&#xff08;需额外安装Apriltag库&#xff09; 二、关键优化点 1‌.亚像素角点优化 2‌ 多标签联合定位 三、性能指标&#xff08;实测&#xff09; 四、常见问题 ‌检测失败…...

AIGC算力消耗白皮书:Stable Diffusion vs Midjourney的架构成本差异

引言&#xff1a;文生图模型的算力经济学悖论 当Midjourney单日处理超过4000万张图像请求时&#xff0c;其云服务算力成本却低于Stable Diffusion开源方案的37%。这揭示了一个核心矛盾&#xff1a;开源模型的架构自由度与闭源系统的商业优化之间存在根本性博弈。本文基于H800 …...

介绍 PHP-FPM 和 Python WSGI

我来详细介绍 PHP-FPM 和 Python WSGI&#xff0c;它们是现代Web开发中替代传统CGI的高性能解决方案&#xff0c;分别针对PHP和Python优化。 1. PHP-FPM&#xff08;FastCGI Process Manager&#xff09; 是什么&#xff1f; PHP-FPM 是PHP的 FastCGI 进程管理器&#xff0c;…...

赛季7靶场 -- Checker --User flag

本系列仅说明靶场的攻击思路&#xff0c;不会给出任何的详细代码执行步骤&#xff0c;因为个人觉得找到合适的工具以实现攻击思路的能力也非常重要。root要逆向&#xff0c;没做了&#xff0c;但是user flag也有借鉴意义&#xff0c;关于2FA的绕过我们有必要了解 1.首先Nmap扫描…...

【c语言】数据在内存中的存储

一、 大小端字节序 大端字节序&#xff1a;数据的低字节内容存放在内存的高地址处&#xff0c;数据的高字节内容存放在内存的低地址处&#xff0c;对于0x11223344 小端字节序&#xff1a;数据的低字节内容存放在内存的低地址处&#xff0c;数据的高字节内容存放在内存的高地…...

【Unity】XLua访问C#文件

创建NPC.cs&#xff1a; public class NPC { public string name; public int age; public void Say() { Debug.Log("Say:我是未被修改的"); } public static void Say() { Debug.Log("Static Say:我是未被修改的"); } public void Say2(int a) { Debug.Lo…...

Python实例题:Python获取房天下数据

目录 Python实例题 题目 实现思路 代码实现 代码解释 get_fangtianxia_data 函数&#xff1a; 主程序&#xff1a; 运行思路 注意事项 Python实例题 题目 Python获取房天下数据 实现思路 请求网页&#xff1a;使用 requests 库向房天下二手房页面发送请求&#xf…...

Milvus(12):分析器

1 分析器概述 在文本处理中&#xff0c;分析器是将原始文本转换为结构化可搜索格式的关键组件。每个分析器通常由两个核心部件组成&#xff1a;标记器和过滤器。它们共同将输入文本转换为标记&#xff0c;完善这些标记&#xff0c;并为高效索引和检索做好准备。 在 Milvus 中&a…...

小程序滚动条隐藏(uniapp版本)

单独指定页面隐藏&#xff08;找到对应的scroll-view&#xff09; <style> /* 全局隐藏滚动条样式 */ ::-webkit-scrollbar { display: none; width: 0; height: 0; color: transparent; background: transparent; } /* 确保scroll-view组件也隐藏滚动条 */ …...

在 Trae CN IDE 中配置 Python 3.11的指南

在 Trae CN IDE 中配置 Python 3.11的指南 下载 python 3.11 安装 Python 3.11 首先&#xff0c;我们需要确保安装了 Python 3.11。可以从Python 官方网站下载适合你操作系统的版本。 链接 如果你已经安装了 Python 3.11&#xff0c;可以通过以下命令确认&#xff1a; 文…...

AI 大模型常见面试题(及内容解析)

大模型领域包含许多专业术语&#xff0c;以下是一些关键术语的解释&#xff1a; 人工智能&#xff08;AI&#xff09;&#xff1a;是指使计算机系统能够模拟人类智能行为&#xff0c;以执行任务、解决问题和学习的科学和技术。 大型语言模型&#xff08;LLM&#xff09;&#…...

QT —— QWidget(1)

QT —— QWidget&#xff08;1&#xff09; QWidget是啥通俗解释&#xff1a;QWidget 是什么&#xff1f;1. QWidget 能干什么&#xff1f;2. 举个栗子 &#x1f330;3. QWidget 的特点4. 和“控件”是什么关系&#xff1f;5. 什么时候用 QWidget&#xff1f;6. 总结 QWidget 核…...

with的用法

Python SQLite 操作详解 本文档详细解释了使用 Python 操作 SQLite 数据库时涉及的关键概念和代码实践&#xff0c;包括 with 语句、事务处理、批量插入以及相关的优化建议。 一、with 语句的作用&#xff08;自动关门的保险库&#xff09; with sqlite3.connect(city_1301.d…...

Go反射-通过反射调用结构体的方法(带入参)

使用反射前&#xff0c;我们需要提前做好映射配置 papckage_struct_relationship.go package reflectcommonimport (api "template/api" )// 包名到包对象的映射 var structMap map[string]func() interface{}{"template/api": func() interface{} { re…...

C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 19)

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 二…...

使用 Selenium 爬取动态网页数据 —— 实战与坑点详解

本文记录了笔者在爬取网页数据过程中遇到的各种技术挑战&#xff0c;包括页面动态渲染、JavaScript 注入等问题&#xff0c;并最终给出一个可运行的完整方案。 文章目录 网页获取不到数据&#x1f680; 尝试用 Selenium 渲染页面 网页获取不到数据 某网页数据依赖大量 JavaSc…...

强化学习--2.数学

强化学习--数学 1、概率统计知识1.1 随机变量与观测值1.2 概率密度函数&#xff08;PDF&#xff09;1.3 期望1.4 随机抽样 2、数据期望E3、正态分布4、条件概率1. **与多个条件相关**&#xff08;依赖所有前置条件&#xff09;2. **仅与上一个条件相关**&#xff08;马尔可夫性…...