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

生成对抗网络(GAN, Generative Adversarial Network)​

定义​​:一种通过​​对抗训练​​让两个神经网络(生成器与判别器)相互博弈的深度学习模型,用于生成逼真的数据(如图像、音频、文本等)。


​一、核心思想:对抗博弈​

GAN的核心是让两个神经网络在对抗中共同进化:

  1. ​生成器(Generator)​​:伪造数据,目标是生成以假乱真的样本,欺骗判别器。
  2. ​判别器(Discriminator)​​:鉴定数据真伪,目标是区分真实样本和生成样本。

​类比​​:假币制造者(生成器)不断改进伪造技术,而警察(判别器)不断提升鉴别能力,最终假币几乎无法被识别。


​二、数学原理​

GAN的优化目标是一个​​极小极大博弈(Minimax Game)​​:

\min_{G} \max_{D} V(D, G) = \mathbb{E}_{x \sim p_{data}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_{z}(z)}[\log(1 - D(G(z)))]

  • ​生成器输入​​:随机噪声 z(如高斯分布)。
  • ​判别器输出​​:样本为真的概率 D(x)∈[0,1]。

​关键​​:生成器和判别器交替优化,直至达到​​纳什均衡​​(双方无法通过单方面改变策略提升效果)。


​三、GAN的经典架构​

​1. 原始GAN​
  • 生成器和判别器均为多层感知机(MLP)。
  • ​问题​​:训练不稳定,易出现模式崩溃(生成样本多样性差)。
​2. DCGAN(深度卷积GAN)​
  • 使用​​卷积神经网络​​(CNN)替代MLP,提升图像生成质量。
  • ​设计原则​​:
    • 生成器用转置卷积上采样。
    • 判别器用步长卷积下采样。
    • 使用批量归一化(BatchNorm)和LeakyReLU。
​3. 其他变体​
​类型​​特点​​应用场景​
​CycleGAN​无配对图像转换(如马→斑马)风格迁移、域适应
​StyleGAN​通过风格控制生成高分辨率人脸人脸生成、艺术创作
​WGAN​用Wasserstein距离替代原始损失,提升稳定性解决模式崩溃
​Conditional GAN​加入条件信息(如类别标签)生成可控样本文本到图像生成

​四、GAN的训练流程​

  1. ​固定生成器,训练判别器​​:
    • 输入真实数据 x 和生成数据 G(z)。
    • 优化判别器参数,最大化\log D(x)+\log(1-D(G(z)))
  2. ​固定判别器,训练生成器​​:                                                                                                             输入噪声 z,优化生成器参数,最小化 \log(1-D(G(z)))或最大化\log D(G(z))
  3. ​交替迭代​​:重复步骤1和2,直至收敛。

​五、GAN的应用领域​

​领域​​应用案例​​代表性模型​
​图像生成​生成逼真人脸、艺术作品、动漫角色StyleGAN、ProGAN
​图像编辑​图像修复、超分辨率、背景替换Pix2Pix、SRGAN
​跨模态生成​文本生成图像(如DALL·E)、音乐生成VQGAN+CLIP、MuseGAN
​数据增强​生成医学图像、工业缺陷样本MedGAN、AnoGAN
​虚拟现实​3D物体生成、场景合成GRAF、GANverse3D

​六、代码示例:简易GAN(PyTorch实现)​

import torch
import torch.nn as nn# 生成器:将噪声转换为图像
class Generator(nn.Module):def __init__(self, latent_dim=100, img_shape=(28, 28)):super().__init__()self.model = nn.Sequential(nn.Linear(latent_dim, 256),nn.LeakyReLU(0.2),nn.Linear(256, 512),nn.LeakyReLU(0.2),nn.Linear(512, 28 * 28),nn.Tanh()  # 输出范围[-1,1])def forward(self, z):return self.model(z).view(-1, 1, 28, 28)# 判别器:判断图像真伪
class Discriminator(nn.Module):def __init__(self):super().__init__()self.model = nn.Sequential(nn.Linear(28 * 28, 512),nn.LeakyReLU(0.2),nn.Linear(512, 256),nn.LeakyReLU(0.2),nn.Linear(256, 1),nn.Sigmoid()  # 输出概率)def forward(self, img):img_flat = img.view(img.size(0), -1)return self.model(img_flat)# 训练循环(伪代码)
for epoch in range(num_epochs):for real_imgs, _ in dataloader:# 训练判别器z = torch.randn(batch_size, latent_dim)fake_imgs = generator(z)real_loss = bce_loss(discriminator(real_imgs), torch.ones(batch_size, 1))fake_loss = bce_loss(discriminator(fake_imgs.detach()), torch.zeros(batch_size, 1))d_loss = real_loss + fake_lossd_loss.backward()optimizer_D.step()# 训练生成器g_loss = bce_loss(discriminator(fake_imgs), torch.ones(batch_size, 1))g_loss.backward()optimizer_G.step()

​七、GAN的优缺点​

​优点​​缺点​
生成数据质量高,逼真性强训练不稳定,易模式崩溃
无需明确数据分布假设难以控制生成内容的细节
支持多模态输出(如图像、文本)计算资源消耗大

​八、关键挑战与解决方案​

  1. ​模式崩溃(Mode Collapse)​

    • ​现象​​:生成器只生成少数几种样本。
    • ​解决方案​​:WGAN、Unrolled GAN、多样化损失函数。
  2. ​训练不稳定性​

    • ​现象​​:生成器和判别器难以同步优化。
    • ​解决方案​​:梯度惩罚(WGAN-GP)、两时间步更新(TTUR)。
  3. ​评估困难​

    • ​现象​​:缺乏客观指标衡量生成质量。
    • ​解决方案​​:FID(Frechet Inception Distance)、IS(Inception Score)。

​九、总结​

生成对抗网络通过​​“左右互搏”​​的对抗机制,开创了生成模型的新范式。其核心价值在于:

  • ​逼真生成​​:在图像、视频、音频等领域达到人类难以分辨的水平。
  • ​无监督学习​​:无需标注数据即可挖掘复杂分布。

从Deepfake到AI艺术创作,GAN正在重塑内容生成的边界。尽管存在训练挑战,但其潜力在医疗、娱乐、工业等领域的应用前景广阔。 🎨🤖

相关文章:

生成对抗网络(GAN, Generative Adversarial Network)​

定义​​:一种通过​​对抗训练​​让两个神经网络(生成器与判别器)相互博弈的深度学习模型,用于生成逼真的数据(如图像、音频、文本等)。 ​​一、核心思想:对抗博弈​​ GAN的核心是让两个神…...

用可视化学习逆置法

1.逆置法思路 目标:将这个彩色数组向右旋转3步 🔴1 → 🟠2 → 🟡3 → 🟢4 → 🔵5 → 🟣6 → ⚪7我们希望得到 🔵5 → 🟣6 → ⚪7 → 🔴1 → 🟠…...

家用服务器 Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南

Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南 本文档总结了我们讨论的所有内容,包括 Ubuntu 服务器配置、硬盘扩容、静态 IP 设置以及 Cloudflare Tunnel 的部署步骤。 目录 硬盘分区与扩容设置静态 IPCloudflare Tunnel 部署SSH 通过 Cloudflare Tunnel常见…...

【C++篇】类和对象(上)

目录 类的定义格式: 内敛函数: 类与struct的区别: 类的访问权限: 类域: 类的实例化: 对象大小: 计算对象的大小时,也存在内存对齐(与结构体一样)&…...

ES6/ES11知识点 续一

模板字符串 在 ECMAScript(ES)中,模板字符串(Template Literals)是一种非常强大的字符串表示方式,它为我们提供了比传统字符串更灵活的功能,尤其是在处理动态内容时。模板字符串通过反引号&…...

ES6入门---第二单元 模块二:关于数组新增

一、扩展运算符。。。 1、可以把ul li转变为数组 <script>window.onloadfunction (){let aLi document.querySelectorAll(ul li);let arrLi [...aLi];arrLi.pop();arrLi.push(asfasdf);console.log(arrLi);};</script> </head> <body><ul><…...

使用python加edge-tts实现文字转语音

文章目录 使用python加edge-tts实现文字转语音1. 使用 Python 安装 Edge-TTS2. 进一步优化3. 使用说明3.1 查看语音列表3.2 单语音转换3.3 批量生成所有语音3.4 改进亮点4. 使用教程最终代码文章创作不易使用python加edge-tts实现文字转语音 Edge-TTS(edge-tts Python 模块)本…...

如何用CSS实现HTML元素的旋转效果:从基础到高阶应用

在网页设计中&#xff0c;元素的动态效果能显著提升用户体验&#xff0c;而旋转效果是其中最常用的交互方式之一。CSS的transform属性提供了强大的旋转功能&#xff0c;结合动画&#xff08;animation&#xff09;和过渡&#xff08;transition&#xff09;&#xff0c;开发者可…...

轻量级RTSP服务模块:跨平台低延迟嵌入即用的流媒体引擎

在音视频流媒体系统中&#xff0c;RTSP&#xff08;Real-Time Streaming Protocol&#xff09;服务模块通常扮演着“视频分发中心”的角色&#xff0c;它将编码后的音视频内容转为标准的流媒体格式&#xff0c;供客户端&#xff08;播放器、云端平台、AI模块等&#xff09;拉流…...

AVInputFormat 再分析

AVInputFormat 是 FFmpeg 中用于描述输入格式&#xff08;如文件容器、设备流等&#xff09;的核心结构体&#xff0c;属于 libavformat 库的一部分。其主要功能是定义解封装&#xff08;demuxing&#xff09;过程中如何解析不同格式的输入数据。以下是其关键特性与使用方式的总…...

wpf CommandParameter 传递MouseWheelEventArgs参数

在 WPF 中通过 CommandParameter 传递 MouseWheelEventArgs 参数时&#xff0c;需结合 ‌事件到命令的转换机制‌ 和 ‌参数转换器‌ 来实现。以下是具体实现方案及注意事项&#xff1a; 一、核心实现方法 1. ‌使用 EventToCommand 传递原始事件参数‌ 通过 Interaction.Tr…...

摆脱养生误区泥沼,拥抱科学养生阳光

在养生的道路上&#xff0c;人们总是满怀热忱地追寻健康之道&#xff0c;然而&#xff0c;诸多似是而非的养生误区却如同泥沼一般&#xff0c;让不少人深陷其中&#xff0c;难以自拔。只有奋力摆脱这些误区的束缚&#xff0c;才能拥抱科学养生的温暖阳光&#xff0c;真正实现身…...

FreeRtos实战从入门到精通--任务创建和删除(动态方法)--事了拂衣去,深藏功与名

FreeRtos是之前的一些聪明的工程师写的免费且开源的嵌入式实时操作系统代码&#xff0c;由于我们实际工作中不需要再去写rtos&#xff0c;我们只需要用就行了&#xff0c;所以博主这里只分享项目工程实战相关的内容&#xff0c;具体rtos源码&#xff0c;可以无需理会&#xff0…...

卷积神经网络进化史:从LeNet-5到现代架构的完整发展脉络

摘要 本文系统梳理卷积神经网络(CNN)从诞生到繁荣的发展历程。从1998年Yann LeCun开创性的LeNet-5出发&#xff0c;重点解析2012年引爆深度学习革命的AlexNet&#xff0c;并详细拆解后续演进的五大技术方向&#xff1a;网络深度化(VGG)、卷积功能强化(ResNet)、检测任务迁移(F…...

《Qt C++ 项目中升级 GCC 版本的完整指南》

Qt C++ 项目中升级 GCC 版本的完整指南 在 Qt C++ 项目中升级 GCC 版本可能会影响编译工具链、Qt 库兼容性以及项目配置。以下是针对不同操作系统的升级步骤和注意事项: 一、为什么需要升级 GCC 版本? C++ 标准支持:新版本 GCC 支持 C++17/20 等新标准特性性能优化:编译速…...

Baklib赋能企业知识管理数字化转型

Baklib驱动知识智慧转化 在数字化浪潮中&#xff0c;企业知识资产的碎片化与低效流转已成为制约业务创新的核心瓶颈。Baklib作为新一代知识中台&#xff0c;通过构建智能化的知识治理体系&#xff0c;将分散的文档、数据与经验转化为可复用的业务智慧。其核心能力体现在多模态…...

LeetCode240. 搜索二维矩阵 II(巧妙转换)

编写一个高效的算法来搜索m x n矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题目中最关键的信息就是每行从左到右升序&#xff0c;每列从左到右升序&#xff0c;如果暴力的话就用不到…...

AVFormatContext 再分析二

说明 &#xff1a;将 avfromatContext 的变量依次打印分析&#xff0c;根据ffmpeg 给的说明&#xff0c;猜测&#xff0c;结合网上的文章字节写测试代码分析二。 37 AVInputFormat *iformat; /** * The input container format. * * Demuxing only, set by avfo…...

leetcode0096. 不同的二叉搜索树-medium

1 题目&#xff1a;不同的二叉搜索树 官方标定难度&#xff1a;中 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xf…...

【科研绘图系列】R语言绘制世界地图(map plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出图片系统信息介绍 【科研绘图系列】R语言绘制世界地图(map plot) 加载R包 library(ggmap) library(RColorBrewer) library(pals) …...

【原创】风云扫描王[特殊字符]OCR识别翻译!证件照

&#x1f4e3;文字识别&#xff0c;文字提取&#xff0c;扫描翻译&#xff0c;证件扫描&#xff0c;表格识别&#xff0c;PDF加水印等一体的扫描应用。扫描任何东西&#xff0c;包括文件、纸质笔记、收据和书籍&#xff0c;把它们扫描成清晰的PDF文件和图像。使用OCR技术将图像…...

Fabrice Bellard(个人网站:‌bellard.org‌)介绍

Fabrice Bellard 是法国人&#xff0c;国际知名程序员。 Fabrice Bellard&#xff08;个人网站&#xff1a;‌bellard.org‌&#xff09;是计算机领域最具影响力的程序员之一&#xff0c;其贡献跨越多个技术领域并持续推动开源生态发展。以下是其关键成就与技术贡献的梳理&…...

Linux电源管理(5)_Hibernate和Sleep功能介绍

原文&#xff1a;Linux电源管理(5)_Hibernate和Sleep功能介绍 1. 前言 Hibernate和Sleep两个功能是Linux PM的核心功能&#xff0c;它们的目的是类似的&#xff1a;暂停使用——>保存上下文——>关闭系统以节电>恢复系统——>恢复上下文——>继续使用。 本文…...

【C/C++】Linux的futex锁

文章目录 Linux Futex1. 概述2. 核心设计思想3. Futex 系统调用接口4. 核心操作4.1 阻塞等待 (FUTEX_WAIT)4.2 唤醒线程 (FUTEX_WAKE)4.3 进阶操作 5. Futex 的使用场景5.1 实现用户态互斥锁 (Mutex)5.2 实现条件变量 (Condition Variable) 6. Futex 的优缺点7. Futex 与传统同…...

ChatGPT:重塑人工智能交互范式的破晓之作

2022年11月30日&#xff0c;总部位于旧金山的研究公司OpenAI正式发布了ChatGPT——一款以病毒式传播速度席卷全球的AI聊天机器人。它不仅能像人类一样生成内容、回答问题和解决问题&#xff0c;更在推出后的两个月内吸引了超过1亿月活跃用户&#xff0c;刷新了消费级技术应用的…...

java面向对象编程【高级篇】之特殊类

目录 &#x1f680;前言&#x1f31f;final关键字&#x1f4af;常量 &#x1f99c;单例类&#x1f4af;饿汉式单例类&#x1f4af;懒汉式单例类 ✍️枚举类&#x1f40d;抽象类&#x1f4af;应用场景&#x1f4af;模版方法设计模式 ⚙️接口&#x1f4af;实现类&#x1f4af;接…...

JVM 一文详解

目录 JVM 简介 JVM 中的内存区域划分 1. 堆&#xff08;一个进程只有一份 ------ 线程共享&#xff09; 2. 栈&#xff08;一个进程可以有 N 份 ------ 线程私有&#xff09; Java 虚拟机栈&#xff1a; 本机方法栈&#xff1a; 3. 程序计数器&#xff08;一个线程可以…...

PVD中断检测掉电

文章目录 概述配置掉电擦写注意 概述 STM32 PVD功能具体可以检测到上电、掉电瞬间&#xff0c;其处理方式有中断响应及事件响应。掉电设置为上升沿触发&#xff0c;上电为下降沿触发 配置 1.开启PVD中断并设置其优先级 2.配置响应中断或事件的阈值电压 3.配置响应模式 生成…...

Nginx — 防盗链配置

防盗链简述 防盗链是一种保护网络资源所有者权益的技术手段&#xff0c;旨在防止未经授权的用户或网站通过直接链接的方式盗用资源&#xff0c;以下是关于防盗链的简述&#xff1a; 原理 基于请求头验证&#xff1a;服务器通过检查请求头中的特定字段&#xff0c;如Referer字…...

题解:P2485 [SDOI2011] 计算器

### 思路 本题是一个比较模板化的题目。 #### 一操作 考虑使用快速幂。 快速幂&#xff0c;只需要把 $k$ 变成二进制即可实现 $\Theta(\log k)$ 的时间复杂度。 实现方法&#xff1a; cpp long long qmi(long long a,long long k,long long p){ long long res 1; …...

【算法刷题笔记day one】滑动窗口(定长基础版)

前言 hello大家好呀 好久不见&#xff0c;上次更新是去年12月份的事情了。这段时间好好沉淀了一下&#xff0c;打了几场比赛&#xff0c;论文也写了一些&#xff0c;也收集了不少信息&#xff0c;对未来方向也有了不一样的计划。 这个算法系列可以说是接着我之前的数据结构系…...

Redis从入门到实战实战篇2

面试重点&#xff1a;本篇包含悲观锁&#xff0c;乐观锁&#xff0c;多线程以及分布式锁的知识 目录 3.优惠卷秒杀 3.1 -全局唯一ID 3.2 -Redis实现全局唯一Id 3.3 添加优惠卷 3.4 实现秒杀下单 3.5 库存超卖问题分析 3.6 乐观锁解决超卖问题 3.7 优惠券秒杀-一人一单 …...

代码随想录算法训练营Day43

力扣300.最长递增子序列 力扣674.最长连续递增子序列【easy】 力扣1143.最长公共子序列【medium】 力扣718.最长重复子数组【medium】 一、力扣300.最长递增子序列【medium】 题目链接&#xff1a;力扣300.最长递增子序列 视频链接&#xff1a;代码随想录 题解链接&#xff1a…...

Scrapy框架之【settings.py文件】详解

settings.py 文件的主要作用是对 Scrapy 项目的全局设置进行集中管理。借助修改这个文件中的配置项&#xff0c;你可以对爬虫的行为、性能、数据处理等方面进行灵活调整&#xff0c;而无需修改爬虫代码。 ①默认英文注释settings.py # Scrapy settings for douban project # …...

Nginx发布Vue(ElementPlus),与.NETCore对接(腾讯云)

案例资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90745660 1.逻辑说明 1.1 逻辑示意图 # 前端请求处理逻辑图浏览器请求流程: 1. 浏览器发起请求├─ 开发环境(DEV)│ ├─ 请求URL: http://192.168.0.102:3000/api/xxx│ └─ 被Vite代理处理└─ 生产…...

深入探索 AAC 编码原理与 ADTS 格式:音频世界的智慧结晶

在数字音频的广阔领域中&#xff0c;AAC 编码及其相关的 ADTS 格式扮演着至关重要的角色。无论是在我们日常使用的音乐 APP&#xff0c;还是高清视频中的音频部分&#xff0c;都能看到它们的身影。今天&#xff0c;就让我们深入探索 AAC 编码原理与 ADTS 格式的奥秘&#xff0c…...

深度学习核心架构:探明四种基础神经网络

摘要 本文对多层感知机(MLP)、卷积神经网络(CNN)、循环神经网络(RNN)和注意力机制等深度学习核心架构的内部运作机制进行可视化分析。通过展示参数学习过程、激活映射和注意力分布等关键特征&#xff0c;揭示了"黑箱"模型的内部工作原理&#xff0c;为模型可解释性研…...

解析机器人 2.0.2 | 支持超过50种短视频平台的链接解析,无水印提取,多功能下载工具

解析机器人是一款功能强大的工具软件&#xff0c;登录即可解锁会员特权。它支持超过50种短视频平台的链接解析&#xff0c;包括抖音、快手、西瓜、bilibili等&#xff0c;并能实现无水印提取。此外&#xff0c;还提供P2P下载、磁力链等多种下载方式&#xff0c;确保用户能够快速…...

【漫话机器学习系列】237. TSS总平方和

深度理解 TSS&#xff08;总平方和&#xff09;&#xff1a;公式、意义与应用 在机器学习与统计建模领域&#xff0c;评价模型好坏的重要指标之一就是方差与误差分析。其中&#xff0c;TSS&#xff08;Total Sum of Squares&#xff0c;总平方和&#xff09;扮演着非常关键的角…...

flutter3.29 build.gradle.kts设置安卓签名

1、在android目录下创建key.properties文件 storePassword密码 keyPassword密码 keyAlias别名 storeFilejks文件完整路径 2、修改android/app/build.gradle.kts 顶部插入import java.util.Properties import java.io.FileInputStreamval keystoreProperties Properties() v…...

<servlet-class>和</url-pattern>的作用

在 SpringMVC 的 web.xml 配置中&#xff0c;<servlet-class> 和 <url-pattern> 是两个关键配置项&#xff0c;分别用于指定处理请求的 Servlet 类和定义该 Servlet 拦截的请求路径规则。以下是它们的具体作用及原理分析&#xff1a; 一、<servlet-class> 的…...

linux部署的mysql数据库修改表名为小写配置

背景: 使用ruoyi-flowable框架初始化流程表结构时, 执行的sql语句创建的表名是大写。但mysql执行sql时大小写是敏感的 删除大写表 处理配置 使用mysql 8.0.41配置表名大小写敏感配置&#xff0c;需要初始化数据库 在MySQL 8.0及以上版本中&#xff0c;lower_case_table_names参…...

【Hot 100】94. 二叉树的中序遍历

目录 引言二叉树的中序遍历我的解题代码优化更清晰的表述建议&#xff1a; &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;算法专栏&#x1f4a5; 标题&#xff1a;【Hot 100】94. 二叉树的中序遍历❣️ 寄语&#xff1a;书到用时方恨少&#xff…...

基于D-Mixer与TransXNet的YOLOv8改进—融合全局-局部特征与空间降维注意力机制的CNN-ViT混合架构

随着目标检测任务对精度与效率要求的不断提升,传统的卷积神经网络(CNN)在建模长程依赖和复杂语义关系方面逐渐暴露出其局限性。而视觉Transformer(ViT)虽然在全局信息建模上表现优异,却因计算开销大、局部细节感知能力不足,在实时检测任务中难以直接部署。本文提出一种面向Y…...

《算法导论(第4版)》阅读笔记:p2-p3

《算法导论(第4版)》学习第 2 天&#xff0c;p2-p3 总结&#xff0c;总计 2 页。 一、技术总结 无。 二、英语总结(生词&#xff1a;1) 1.incremental (1) increase: in-(“in”) crescere “to grow” (2)increment (3)incremental: increment -al adj. incremental…...

基于Qlearning强化学习的电梯群控系统高效调度策略matlab仿真

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 Q-learning强化学习原理 2.2 基于Q-learning的电梯群控系统建模 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 仿真操作…...

嵌入式硬件篇---STM32F103C8T6STM32F103RCT6

文章目录 前言一、相同点内核与主频基础外设开发环境 二、不同点1. 存储容量2. 外设资源3. 封装与引脚 三、代码移植注意事项1. 内存与 Flash 限制Flash差异RAM调整 2. 外设差异外设缺失&#xff1a;GPIO 映射&#xff1a; 3. 中断向量表中断向量偏移 4. 时钟与总线配置APB分频…...

rhce第二次作业

任务目标 1.配置ssh实现A&#xff0c;B主机互相免密登录 2.配置nginx服务&#xff0c;通过多ip区分多网站 任务一 关闭防火墙 [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# systemctl stop firewalld.service A主机免密登录B主机 ### A主机生成密钥 [rootlocalh…...

Linux第20节 --- inode和文件系统

一、没有被打开的文件 如果一个文件没有被打开&#xff0c;那么该文件存储在哪里&#xff1f; 该文件是存储在磁盘当中的&#xff01; 文件 文件内容 文件属性&#xff01; 文件的内容是按照数据块存储的&#xff1b;文件的属性其实就是inode&#xff08;是一个128字节的…...

LeetCode - 19.删除链表的倒数第N个结点

目录 题目 解法一 双指针算法 核心思想 执行流程 具体例子 代码 解法二 两次遍历法 核心思想 执行流程 具体例子 代码 题目 19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 解法一 双指针算法 核心思想 利用双指针间隔固定距离(n1)&a…...