【Python · PyTorch】循环神经网络 RNN(基础概念)

【Python · PyTorch】循环神经网络 RNN(基础概念)

  • 0. 生物学相似性
  • 1. 概念
  • 2. 延时神经网络(TDNN)
  • 3. 简单循环神经网络(Simple RNN)
    • 3.1 BiRNN 双向循环神经网络
    • 3.2 特点
      • 记忆性
      • 参数共享
      • 图灵完备
    • 3.3 网络结构
    • 3.4 随时间反向传播
  • 4. 基于门控的循环神经网络
    • 4.1 长短期记忆网络(Long Short-Term Memory, LSTM)
      • 4.1.1 LSTM 基本组合方式
      • 4.1.2 LSTM 门控机制理解
        • ① 输入门
        • ② 遗忘门
        • ③ 输出门
      • 4.1.3 BiLSTM 双向长短期记忆网络
    • 4.2 门控循环单元网络(Gated Recurrent Units, GRU)
      • 4.2.1 GRU 基本组合方式
      • 4.2.2 GRU 门控机制理解
        • ① 更新门
        • ② 重置门
      • 4.2.3 BiGRU 双向门控循环单元网络
  • 5. 其他循环神经网络
    • 5.1 回声状态网络(Echo State Network, ESN)
    • 5.2 霍普菲尔德网络(Hopfield Network)

0. 生物学相似性

1933年,西班牙神经生物学家Rafael Lorente de Nó发现大脑皮层 (cerebral cortex) 的解剖结构允许刺激在神经回路中循环传递,并由此提出反响回路假设 (reverberating circuit hypothesis)。该假说在同时期的一系列研究中得到认可,被认为是生物拥有短期记忆的原因。随后神经生物学的进一步研究发现,反响回路的兴奋和抑制受大脑阿尔法节律 (α-rhythm) 调控,并在α-运动神经 (α-motoneurones) 中形成循环反馈系统 (recurrent feedback system)。在二十世纪70-80年代,为模拟循环反馈系统而建立的一些数学模型为RNN带来了启发。

1. 概念

循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。

应用领域

  • 自然语言处理:文本生成、情感分析、机器翻译
  • 音频处理:声学模型构建、语音识别
  • 时间序列预测:预测股价、气象数据、交通流量

2. 延时神经网络(TDNN)

延时神经网络 (Time Delay Neural Network, TDNN):在ANN的 非输出层 添加 延时器 → 记录最近几次活性值

t t t 时刻,第 l l l 层神经元 活性值 取决于 第 l − 1 l-1 l1 层神经网络 最近 K K K 个时刻的活性值:
h t ( l ) = f ( h t ( l − 1 ) , h t − 1 ( l − 1 ) , ⋯ , h t − K ( l − 1 ) ) \boldsymbol{h}^{(l)}_{t}=f(\boldsymbol{h}^{(l-1)}_{t},\boldsymbol{h}^{(l-1)}_{t-1},\cdots,\boldsymbol{h}^{(l-1)}_{t-K}) ht(l)=f(ht(l1),ht1(l1),,htK(l1))
其中: h t ( l ) ∈ R M l \boldsymbol{h}^{(l)}_{t} \in \mathbb{R}^{M_l} ht(l)RMl 表示第 l l l 层神经网络在时刻 t t t 的活性值, M l M_l Ml 为第 l l l 层神经元的数量。

通过延时器,前馈神经网络具有了短期记忆的能力。

3. 简单循环神经网络(Simple RNN)

简单循环神经网络 (Simple Recurrent Neural Network, SRNN):一种简单的循环神经网络,仅有一个隐藏层夹在浅层ANN中,负责连接相邻的层与层。

令向量 x t ∈ R M \boldsymbol{x}_t \in \mathbb{R}^{M} xtRM 表示在时刻 t t t 网络的输入, h t ∈ R D \boldsymbol{h}_t\in\mathbb{R}^D htRD 表示隐藏层状态 (即隐藏层神经元活性值),则 h t \boldsymbol{h}_t ht 不仅和当前时刻的输入 x t \boldsymbol{x}_t xt相关,也和上一个时刻的隐藏层状态 h t − 1 h_{t-1} ht1相关。

简单循环神经网络的两种表现形式(未展开 & 展开):

RNN展开

简单循环神经网络 时刻 t t t 更新公式为:
z t = U h t − 1 + w x t + b h t = f ( z t ) \boldsymbol{z}_t=Uh_{t-1} + wx_t+b \\ h_t=f(z_t) zt=Uht1+wxt+bht=f(zt)

RNN结构

3.1 BiRNN 双向循环神经网络

双向循环神经网络 (‌BiRNN):一种特殊的RNN,能够同时处理输入序列的前后文信息,从而提高模型的表达能力和准确度。

BiRNN

优点‌:

  • 捕捉前后文信息‌:BiRNN能够同时利用输入序列的前后文信息,这在理解自然语言时非常重要。
  • 提高精度‌:在处理某些序列数据时,BiRNN能够更全面地捕捉整个序列中的重要信息,从而提高模型的表达能力和准确度‌。

缺点‌:

  • 计算成本较高‌:由于需要同时处理前后文信息,BiRNN的计算成本比单向RNN更高。
  • 梯度消失问题‌:在长序列处理中,BiRNN也可能遇到梯度消失问题,影响模型性能‌。

3.2 特点

记忆性

TDNN SRNN LSTM GRU ESN Hopfield - 记忆功能

网络类型记忆期限实现方式特性
延时神经网络 (TDNN)短期延时器
普通循环神经网络 (SRNN)短期延时器 / 隐状态 / 细胞雏形
长短期记忆网络 (LSTM)长短期隐状态 / 细胞结构
门控循环单元网络 (GRU)长短期隐状态 / 细胞结构
回声状态网络 (ESN)动态储备池动态
霍普菲尔德网络 (Hopfield)大约单元数15%左右统计力学特性 / 热力学特性联想

参数共享

RNN 参数共享:在每个时间步中,使用的权重矩阵是共享的‌。

图灵完备

图灵机 (Turing Machine):一种抽象的信息处理装置,具有无限存储能力,可以用来解决所有可计算问题。

图灵完备 (Turing Completeness):一种数据操作规则,比如一种计算机编程语言,可以实现图灵机所有功能,解决所有可计算问题。

不严谨的理解:只要顺序想好 啥可计算的问题都能计算,只要存储空间给够 啥五花八门结构的用于计算的信息/数据都能存储。

与 RNN 的关系:所有图灵机都可被一个有Sigmoid型激活函数的神经元构成的全连接循环神经网络组成。

3.3 网络结构

① 一对一(One to One)

  • 输入:单变量
  • 输出:单变量

一对一

② 一对多(One to Many)

  • 输入:单变量
  • 输出:序列

一对多

③ 多对一(Many to One)

  • 输入:序列
  • 输出:单变量

多对一

④ 多对多(Many to Many)

  • 输入:序列
  • 输出:序列

多对多

⑤ 同步多对多

  • 输入:序列(与输出对应)
  • 输出:序列(与输入对应)

同步多对多

3.4 随时间反向传播

RNN的训练采用时间反向传播(Backpropagation Through Time, BPTT),该算法通过在时间序列的每个时间步上计算梯度,逐步更新网络的参数。BPTT的核心思想是在展开的时间图上对整个序列进行梯度计算,并逐时间步向前反向传播梯度。

4. 基于门控的循环神经网络

门控循环神经网络 (Gated Recurrent Neural Network):为更好地捕捉时间序列中时间步距离较大的依赖关系。它通过可以学习的门来控制信息的流动

4.1 长短期记忆网络(Long Short-Term Memory, LSTM)

长短期记忆网络 (LSTM,Long Short-Term Memory):一种特殊的循环神经网络,用于处理和建模具有时间依赖性的序列数据。与传统RNN相比,LSTM引入了一种称为"门控机制"的结构,有效地解决了传统RNN在长序列训练中容易出现的 梯度消失梯度爆炸 问题。

标志:为RNN设计细胞 → 解决 无法捕捉“长期”关联/依赖关系 的问题

LSTM可解决RNN在处理长序列数据时的 梯度消失梯度爆炸 问题。

LSTM可捕捉序列中的长期依赖关系,因此适合时序处理、自然语言处理、音频处理等领域的序列数据。

关键思想:通过门控机制控制信息的流动,使网络能够更好地捕捉和记忆长期依赖关系,从而适用于处理时间序列数据,如语音识别、文本生成、机器翻译等任务。通过引入LSTM结构,模型能够更好地处理长期依赖关系,避免了传统RNN中信息衰减或失去的问题,提高了模型对序列数据的建模能力。

相较于RNN优势

  • 缓解RNN ”梯度消失“ 问题
  • 缓解RNN ”长期“ 依赖问题

LSTM 单元/细胞 基本结构

LSTM结构

LSTM 门控机制 (Gating Mechanism) 公式及其作用

输入门𝒊𝑡:控制当前时刻的候选状态𝒄̃𝑡 有多少信息需要保存.
i t = σ ( W i x t + U i h t − 1 + b i ) \boldsymbol{i}_t=\sigma(\boldsymbol{W}_i\boldsymbol{x}_t+\boldsymbol{U}_i\boldsymbol{h}_{t-1}+\boldsymbol{b}_i) it=σ(Wixt+Uiht1+bi)
遗忘门𝒇𝑡 :控制上一个时刻的内部状态𝒄𝑡−1 需要遗忘多少信息.
f t = σ ( W f x t + U f h t − 1 + b f ) \boldsymbol{f}_t=\sigma(\boldsymbol{W}_f\boldsymbol{x}_t+\boldsymbol{U}_f\boldsymbol{h}_{t-1}+\boldsymbol{b}_f) ft=σ(Wfxt+Ufht1+bf)

输出门 𝒐𝑡:控制当前时刻的内部状态 𝒄𝑡 有多少信息需要输出给外部状态𝒉𝑡.

o t = σ ( W o x t + U o h t − 1 + b o ) \boldsymbol{o}_t=\sigma(\boldsymbol{W}_o\boldsymbol{x}_t+\boldsymbol{U}_o\boldsymbol{h}_{t-1}+\boldsymbol{b}_o) ot=σ(Woxt+Uoht1+bo)

4.1.1 LSTM 基本组合方式

前后串行相继关系

在PyTorch中的体现:torch.nn.LSTM()hidden_size参数。

LSTM

两层并行层叠关系

在PyTorch中的体现:torch.nn.LSTM()num_layers参数。

LSTM

4.1.2 LSTM 门控机制理解

LSTM通过以下步骤在每个时间步处理输入序列:

  • 输入序列的当前时间步 t 的输入与上一个时间步 t-1的隐藏状态传递给LSTM单元。
  • 遗忘门决定哪些信息应该从单元状态中遗忘,输入门决定哪些新信息应该存储在单元状态中。
  • 更新单元状态,将遗忘门的输出与输入门的输出相乘,然后加上一个候选值,以更新单元的状态。
  • 输出门决定了当前时间步的隐藏状态。
  • 新的隐藏状态和单元状态传递到下一个时间步,同时输出用于预测或其他任务。
① 输入门

输入门 (Input Gate):帮助模型确定需要将多少过去的信息 (来自之前的时间步骤) 传递到未来,取值介于0~1。

输入门

② 遗忘门

遗忘门 (Forget Gate):对于上一时刻LSTM中的单元状态来说,一些“信息”可能会随着时间的流逝而“过时”。为了不让过多记忆影响神经网络对现在输入的处理,我们应该选择性遗忘一些在之前单元状态中的分量这个工作就交给了“遗忘门”,取值介于0~1。

遗忘门

③ 输出门

输出门 (Output Gate):包含一个Sigmoid激活函数和一个点乘运算。Sigmoid函数的输出在0到1之间,它可以决定哪些信息需要保留,哪些信息需要丢弃,取值介于0~1。

输出门

4.1.3 BiLSTM 双向长短期记忆网络

双向长短期记忆网络 (LSTM):一种改进LSTM,专门设计用于处理序列数据。BiLSTM通过结合前向和后向两个LSTM网络的输出来捕捉序列中的双向依赖关系,从而能够同时考虑序列的前后文信息‌。

BiLSTM由前向LSTM和后向LSTM组成。前向LSTM处理输入序列从开始到结束,而后向LSTM则从结束到开始处理。

两向LSTM的输出结合在一起,形成最终的输出结果。

每个时刻的输出是前向与后向LSTM的隐状态的连接,亦可使用其他方式连接。

BiLSTM

优势

  1. 捕捉双向依赖关系‌:BiLSTM能够同时考虑到序列的前后文信息,对于需要了解全局上下文的任务 (如命名实体识别、机器翻译等) 非常有利‌。
  2. 改善性能‌:在许多自然语言处理 (NLP) 任务中,BiLSTM通常比LSTM具有更好的表现‌。

应用场景‌:

  • 情感分析‌:通过获取文本的上下文信息,判断情感倾向。
  • 机器翻译‌:在翻译过程中,考虑上下文的双向信息,提高翻译质量。
  • 语音识别‌:处理语音信号时,利用双向信息提高识别准确率‌3。

4.2 门控循环单元网络(Gated Recurrent Units, GRU)

门控循环单元(gated recurrentunit,GRU):一种循环神经网络,可解决一般的RNN存在的长期依赖问题,且相较于LSTM具有更少的计算量。

标志:简化LSTM细胞结构 + 保持其基本效能 → 减时提速

GRU相较于LSTM结构更简单 (参数较少),即在训练过程中 GRU需要的 计算资源和训练时间更少

在特定情况下,GRU可能会比LSTM更有效率,尤其是在对训练速度有较高要求的应用场景中‌。

相较于LSTM优势

  • 缓解LSTM 计算训练速度慢的问题
  • 降低过拟合风险

GRU 单元/细胞 基本结构

GRU结构

4.2.1 GRU 基本组合方式

基本组合方式与LSTM类似:前后串行相继关系、两层并行层叠关系

在PyTorch中torch.nn.GRU()的体现参数也与torch.nn.LSTM()类似。

GRU 门控机制 (Gating Mechanism) 公式及其作用

更新门𝒛𝑡:权衡新旧信息保留与遗忘。
z t = σ ( W z x t + U z h t − 1 + b z ) \boldsymbol{z}_t=\sigma(\boldsymbol{W}_z\boldsymbol{x}_t+\boldsymbol{U}_z\boldsymbol{h}_{t-1}+\boldsymbol{b}_z) zt=σ(Wzxt+Uzht1+bz)
重置门𝒓𝑡:确定过去信息的遗忘比例。
r t = σ ( W r x t + U r h t − 1 + b r ) \boldsymbol{r}_t=\sigma(\boldsymbol{W}_r\boldsymbol{x}_t+\boldsymbol{U}_r\boldsymbol{h}_{t-1}+\boldsymbol{b}_r) rt=σ(Wrxt+Urht1+br)

4.2.2 GRU 门控机制理解

GRU

① 更新门

更新门:帮助模型确定当前单元新信息与上个单元传递旧信息的考虑比例,取值介于0~1。

② 重置门

重置门:帮助模型确定过去信息的遗忘比例,取值介于0~1。

4.2.3 BiGRU 双向门控循环单元网络

双向门控循环单元网络 (BiGRU):一种改进GRU,专门设计用于处理序列数据。BiGRU通过结合前向和后向两个GRU网络的输出来捕捉序列中的双向依赖关系,从而能够同时考虑序列的前后文信息‌。

BiGRU

5. 其他循环神经网络

由于篇幅有限,这里对ESN和Hopfield网络仅作简单描述,后续章节可能会补齐相关内容。

5.1 回声状态网络(Echo State Network, ESN)

回声状态网络 (ESN):一种循环神经网络。ESN 训练方式与传统 RNN 不同。

ESN

矩阵谱半径 (Matrix Spectral Radius):‌矩阵绝对值最大的特征值。

设矩阵 A ∈ C n × n A \in C^{n \times n} ACn×n,其特征值为 λ 1 , λ 2 , ⋯ , λ n \lambda_1, \lambda_2, \cdots, \lambda_n λ1,λ2,,λn,则矩阵 A A A 的谱半径 ρ ( A ) \rho(A) ρ(A) 定义为:
ρ ( A ) = max ⁡ 1 ≤ i ≤ n ∣ λ i ∣ \rho(A)=\max_{1 \le i \le n}|\lambda_i| ρ(A)=1inmaxλi

网络结构及特点

  1. 储层 (Reservoir):中文翻译有叫储备池、储层、储蓄池等等各种名称。ESN 中的储层是互连神经元的集合,其中连接及其权重是随机初始化和固定的。该储层充当动态储层,其目的是将输入数据转换到更高维的空间,它充当动态存储器,捕获输入数据中的时间依赖性。储层中的神经元可以表现出复杂的动力学,包括振荡和混沌,这可以帮助捕获输入数据中的时间模式。
  2. 输出层:经过储层后,转换后的数据仅用于训练输出层。这通常是使用线性回归方法完成的,使得训练过程相对快速和高效。
  3. 回声状态属性:为了使ESN有效工作,它必须具有“回声状态属性”。这意味着网络的内部状态应该是最近输入历史的函数,并且应该淡出或“回显”旧的输入。此属性确保网络对先前的输入有一定的记忆,但不会陷入重复它们的循环中。调整储层权重矩阵的谱半径是确保这一特性的一种方法。
  4. 储层计算: 储层计算是一个包含 Echo State Networks 的框架。在 ESN 中,储层是随机初始化的循环神经元的动态存储器,用于捕获顺序数据中的时间模式。

优点

  1. 时间序列预测: ESN 擅长预测时间序列中的未来值。在处理具有复杂模式和依赖性的数据序列时,它们特别有效。
  2. 训练高效: ESN 拥有独特的训练方法。虽然存储库是随机生成和固定的,但仅训练输出权重。与传统的循环神经网络 (RNN) 相比,训练计算效率更高,并且允许 ESN 在较小的数据集上进行训练。
  3. 非线性映射:ESN 中的储层给模型带来了非线性。这有助于捕获和建模线性模型可能难以处理的数据中的复杂关系。
  4. 对噪声的鲁棒性:ESN 对输入数据中的噪声具有鲁棒性。储层的动态特性使其能够过滤掉不相关的信息并专注于基本模式。
  5. 易于实施:与训练传统RNN相比, ESN实现更简单。固定随机库和输出权重的直接训练使 ESN 更易于实际使用。
  6. 记忆 & 学习: ESN 中的存储库充当存储器,从输入序列中捕获相关信息。这种记忆使网络能够根据学习的模式进行概括并做出准确的预测。

缺点

  1. 对储层动力学的有限控制:储层是随机初始化的,这种缺乏对其动力学的直接控制。虽然这种随机性可能是有益的,针对特定任务精确定制网络比较困难。
  2. 超参数灵敏度:ESN 通常依赖于调整超参数(储层大小、谱半径、激活函数和输入缩放)。
  3. 缺乏理论理解:与其他一些神经网络架构相比,ESN 的理论理解并不完善。对于一些情况难以解释。
  4. 表达能力有限:在某些任务下会不如更复杂的循环神经网络。难以完成需要捕获非常复杂的模式的任务。
  5. 过度拟合的可能性:根据任务的复杂性和存储库的大小,ESN 可能容易过拟合,尤其是训练数据有限的情况下。

5.2 霍普菲尔德网络(Hopfield Network)

Hopfield神经网络:一种递归神经网络,由约翰·霍普菲尔德在1982年发明。

Hopfield网络是一种结合存储系统和二元系统的神经网络。它保证了向局部极小的收敛,但收敛到错误的局部极小值(local minimum),而非全局极小(global minimum)的情况也可能发生。Hopfield网络也提供了模拟人类记忆的模型。

离散Hopfield网络:一个单层网络,有n个神经元节点,每个神经元的输出均接到其它神经元的输入。各节点没有自反馈。每个节点都可处于一种可能的状态(1 或-1),即当该神经元所受的刺激超过其阀值时,神经元就处于一种状态(比如1),否则神经元就始终处于另一状态(比如-1)。 整个网络有两种工作方式:即异步方式和同步方式。


联想记忆功能是离散Hopfield网络的一个重要应用范围。要想实现联想记忆,反馈网络必须具有两个基本条件:

  1. 网络能收敛到稳定的平衡状态,并以其作为样本的记忆信息;
  2. 具有回忆能力,能够从某一残缺的信息回忆起所属的完整的记忆信息。 离散Hopfield网络实现联想记忆的过程分为两个阶段:学习记忆阶段和联想回忆阶段。在学习记忆阶段中,设计者通过某一设计方法确定一组合适的权值,使网络记忆期望的稳定平衡点。联想回忆阶段则是网络的工作过程。

离散Hopfield网络用于联想记忆有两个突出的特点:即记忆是分布式的,而联想是动态的。

离散Hopfield网络局限性,主要表现在以下几点:

  1. 记忆容量的有限性;
  2. 伪稳定点的联想与记忆;
  3. 当记忆样本较接近时,网络不能始终回忆出正确的记忆等。另外网络的平衡稳定点并不可以任意设置的,也没有一个通用的方式来事先知道平衡稳定点。

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

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

相关文章

使用EFK收集k8s日志

首先我们使用EFK收集Kubernetes集群中的日志,本次实验讲解的是在Kubernetes集群中启动一个Elasticsearch集群,如果企业内已经有了Elasticsearch集群,可以直接将日志输出至已有的Elasticsearch集群。 文章目录 部署elasticsearch创建Kibana创建…

Qt入门1——认识Qt的几个常用头文件和常用函数

1.头文件 ① #include <QPushButton>——“按钮”头文件&#xff1b; ② #include <QLabel>——“标签”头文件&#xff1b; ③ #include <QFont>——“字体”头文件&#xff1b; ④#include <QDebug>——输出相关信息&#xff1b; 2. 常用函数/类的基…

【Linux驱动开发】irq中断配置API及中断应用 阻塞休眠和非阻塞的驱动操作

【Linux驱动开发】irq中断配置API及中断应用 阻塞休眠和非阻塞的驱动操作 文章目录 中断操作注册和释放中断中断服务函数使能和禁止上半部和下半部软中断tasklet工作队列 设备节点中的中断中断号API函数获取中断号获取中断信息 中断应用读取设备树节点获取中断号获取中断触发方…

Linux设置以及软件的安装(hadoop集群安装02)

一、Linux的常见设置 1、设置静态IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 如何查看自己的虚拟机的网关&#xff1a; 完整的配置&#xff08;不要拷贝我的&#xff09;&#xff1a; TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no&…

excel版数独游戏(已完成)

前段时间一个朋友帮那小孩解数独游戏&#xff0c;让我帮解&#xff0c;我看他用电子表格做&#xff0c;只能显示&#xff0c;不能显示重复&#xff0c;也没有协助解题功能&#xff0c;于是我说帮你做个电子表格版的“解题助手”吧&#xff0c;不能直接解题&#xff0c;但该有的…

网络安全,文明上网(5)注重隐私加密

前言 为了维护个人数据和通信的安全&#xff0c;防止非法获取或泄露&#xff0c;可以采用多种隐私保护技术。 技术要点 1. 个人数据去标识化和匿名化方法&#xff1a; K匿名性(K-Anonymity)&#xff1a;由Sweeney提出&#xff0c;通过对个人数据进行匿名化处理&#xff…

【Unity】 GamePlay开发:通用的检查点/成就/条件触发系统

特别适用于各种解谜关卡, 成就系统&#xff0c;任务系统&#xff0c;的 通用事件处理 CheckPointHandler.cs随便挂在场景中的某个物体上 (单例模式&#xff0c;场景中只要有一个&#xff09; 1) How To Use CheckPoint Events是一个列表&#xff0c;每个元素是一个组合事件&…

P1 练习卷(C++4道题)

1.纷繁世界 内存限制&#xff1a;256MB 时间限制&#xff1a;1s 问题描述 这是一个纷繁复杂的世界。 某一天清晨你起床很迟&#xff0c;没有吃上早饭。于是你骑着自行车去超市&#xff0c;但是你又发现商店的工作人员已经重新贴上了价格标签&#xff0c;零食价格都涨了50%。你…

私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?

在当今数字化、网络化的时代背景下&#xff0c;视频监控技术已广泛应用于各行各业&#xff0c;成为保障安全、提升效率的重要工具。然而&#xff0c;面对复杂多变的监控需求和跨区域、网络化的管理挑战&#xff0c;传统的视频监控解决方案往往显得力不从心。 EasyCVR视频融合云…

物体网格弹性变形---Unity中实现

在游戏引擎场景中的3D物体是由一定数量的点、面组成的&#xff0c;如下图&#xff1a; 要使这些物体变形就是改变3D物体每个顶点状态。 1.首先在Unity场景中增加一个球体&#xff0c;如下图 3D组件默认拥有MeshFilter、meshRenderer、Collider组件&#xff0c;分别用来获取Mes…

Java爬虫:获取商品详情的实践之旅

在当今这个信息爆炸的时代&#xff0c;数据的价值日益凸显。对于电商行业来说&#xff0c;商品详情的获取尤为重要&#xff0c;它不仅关系到产品的销售&#xff0c;还直接影响到用户体验。传统的人工获取方式耗时耗力&#xff0c;而自动化的爬虫技术则提供了一种高效解决方案。…

【LLM】一文学会SPPO

博客昵称&#xff1a;沈小农学编程 作者简介&#xff1a;一名在读硕士&#xff0c;定期更新相关算法面试题&#xff0c;欢迎关注小弟&#xff01; PS&#xff1a;哈喽&#xff01;各位CSDN的uu们&#xff0c;我是你的小弟沈小农&#xff0c;希望我的文章能帮助到你。欢迎大家在…

腾讯云 AI 代码助手:产品研发过程的思考和方法论

一、文章摘要 本文将详细阐述 腾讯云 AI 代码助手的历史发展形态与产品整体架构&#xff0c;并从技术、研发方法论的角度分别阐述了产品的研发过程。 全文阅读约 5&#xff5e;8 分钟。 二、产品布局 AI 代码助手产品经历了三个时代的发展 第一代诸如 Eclipse、Jetbrains、V…

RabbitMQ实现异步下单与退单

前言&#xff1a; 在电商项目中的支付模块也是一个很重要的模块&#xff0c;其中下订操作以及退订操作就是主要的操作。其次的下单是同步下单&#xff0c;也就是第三方支付、数据库扣减、积分增加、等等其他业务操作&#xff0c;等待全部执行完毕后向用户返回成功响应请求。对…

SQL99版全外连接和交叉连接和总结

全外连接MySQL不支持 elect 查询列表 from 表名1 表别名1 cross join 表名2 表别名2 on 连接条件 ...... ; 交叉连接 就两个记录做笛卡尔积&#xff01;没什么好说的&#xff0c;基本也没用过&#xff01; 总结

从〇开始深度学习(0)——背景知识与环境配置

从〇开始深度学习(0)——背景知识与环境配置 文章目录 从〇开始深度学习(0)——背景知识与环境配置写在前面1.背景知识1.1.Pytorch1.2.Anaconda1.3.Pycharm1.4.CPU与GPU1.5.整体关系 2.环境配置2.1.准备工作2.1.1.判断有无英伟达显卡2.1.2.清理电脑里的旧环境 2.1.安装Anaconda…

PHP屏蔽海外IP的访问页面(源代码实例)

PHP屏蔽海外IP的访问页面&#xff08;源代码实例&#xff09;&#xff0c;页面禁用境外IP地址访问 <?php/*** 屏蔽海外ip访问* 使用ip2long函数得到ip转为整数的值&#xff0c;判断值是否在任一一个区间中* 以下是所有国内ip段* 调用方法&#xff1a;IschinaIp($ALLIPS)* …

“iOS profile文件与私钥证书文件不匹配”总结打ipa包出现的问题

目录 文件和证书未加载或特殊字符问题 证书过期或Profile文件错误 确认开发者证书和私钥是否匹配 创建证书选择错误问题 申请苹果 AppId时勾选服务不全问题 ​总结 在上线ios平台的时候&#xff0c;在Hbuilder中打包遇见了问题&#xff0c;生成ipa文件时候&#xff0c;一…

VUE 的前置知识

一、JavaScript----导图导出 1. JS 提供的导入导出机制&#xff0c;可以实现按需导入 1.1 在html页面中可以把JS文件通过 <script src"showMessage.js"></script> 全部导入 1.2 通过在JS文件中写export关键字导出通过 <script src"showMessage…

量子卷积神经网络

量子神经网络由量子卷积层、量子池化层和量子全连接层组成 量子卷积层和量子池化层交替放置&#xff0c;分别实现特征提取和特征降维&#xff0c;之后通过量子全连接层进行特征综合 量子卷积层、量子池化层和量子全连接层分别由量子卷积单元、量子池化单元和量子全连接单元组…