Autoformer

news2025/1/28 19:26:22

A u t o f o r m e r Autoformer Autoformer

摘要

​ 我们设计了 A u t o f o r m e r Autoformer Autoformer作为一种新型分解架构,带有自相关机制。我们打破了序列分解的预处理惯例,并将其革新为深度模型的基本内部模块。这种设计使 A u t o f o r m e r Autoformer Autoformer具备了对复杂时间序列的渐进分解能力。进一步地,受随机过程理论的启发,我们基于序列周期性设计了自相关机制,它在子序列级别进行依赖关系的发现和表示聚合。在效率和准确性方面,自相关机制都优于自注意力机制。

1.简介

​ 最近的深度预测模型已经取得了很大的进展,特别是基于变压器的模型。得益于自关注机制,变压器在对序列数据的长期依赖关系建模方面具有很大的优势,这使得更强大的大模型成为可能。我们尝试利用序列的周期性来更新自关注中的点向连接。观察到,周期之间处于相同相位位置的子序列往往呈现相似的时间过程。因此,尝试基于序列周期性导出的过程相似性构建一个序列级连接。

​ 提出了一个原始的自耦器来代替变压器进行长期时间序列预测。自耦器仍然沿用残差和编解码器结构,但将变压器改造为分解预测结构。通过嵌入我们提出的分解块作为内部算子,自耦器器可以逐步从预测的隐藏变量中分离出长期趋势信息。这种设计允许我们的模型在预测过程中交替分解和细化中间结果。受随机过程理论的启发,自耦器引入了自相关机制来代替自关注,该机制基于序列的周期性发现子序列的相似性,并从底层周期中聚合相似的子序列。这种序列智能机制为长度为 L L L的序列实现了 O ( L l o g L ) O(L log L) O(LlogL)复杂度,并通过将逐点表示聚合扩展到子序列级别来打破信息利用瓶颈。自耦器在六个基准上达到了最先进的精度。贡献总结如下:

  • 为了解决长期未来复杂的时间模式,我们提出了自耦器作为一个分解架构,并设计了内部分解块,以赋予深度预测模型具有内在的渐进分解能力。
  • 我们提出了一种自相关机制,在序列级别上具有依赖性发现和信息聚合。我们的机制超越了以前的自关注家族,可以同时有利于计算效率和信息利用率。
  • 在六个基准的长期设定下,自耦器实现了38%的相对改进,涵盖了五个实际应用:能源、交通、经济、天气和疾病。

2.相关工作

  • 提出的自相关机制基于时间序列的固有周期性,可以提供序列明智的连接。
  • 自耦器利用分解作为深度模型的内部块,可以在整个预测过程中逐步分解隐藏序列,包括过去的序列和预测的中间结果。

3.Autoformer

在这里插入图片描述

Autoformer架构:编码器通过序列分解模块(蓝色模块)消除长期趋势周期部分,并专注于季节性模式的建模。解码器逐步累积从隐藏变量中提取的趋势部分。编码器中的过去季节性信息被编码器-解码器自相关(解码器中央的绿色模块)所利用。

T r a n s f o r m e r Transformer Transformer​​改造为一个深度分解架构,包括内部的系列分解块、自相关机制以及相应的编码器和解码器。

序列分解模块:

​ 该模块的目的是将输入的时间序列分解为趋势周期部分和季节性部分,以便更好地进行长期预测。由于未来是未知的,因此该模块通过对预测的中间隐藏变量进行处理来提取长期稳定的趋势。具体方法是使用移动平均法,通过填充操作保持序列长度不变。最终,该模块输出分解后的季节性部分和趋势周期部分。

​ 采用移动平均法来平滑周期性波动,并突出长期趋势。对于长度为 L L L的输入序列 X ∈ R L × d X \in \mathbb{R}^{L \times d} XRL×d,其过程如下:
X t = AvgPool ( Padding ( X ) ) X s = X − X t                           方程一 X_t = \text{AvgPool}(\text{Padding}(X))\\ X_s = X - X_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\方程一 Xt=AvgPool(Padding(X))Xs=XXt                         方程一

​ 其中, X s X_s Xs X t ∈ R L × d X_t ∈ \mathbb{R}^{L \times d} XtRL×d分别表示季节性和提取的趋势周期部分。我们采用带有填充操作的 A v g P o o l ( ⋅ ) AvgPool(·) AvgPool()进行移动平均,以保持序列长度不变。我们用 X s , X t = S e r i e s D e c o m p ( X ) Xs, Xt = SeriesDecomp(X) Xs,Xt=SeriesDecomp(X)​​​来总结上述方程,这是一个模型内部模块。

模型输入

​ 编码器的输入是过去 I I I个时间步的 X e n ∈ R I × d Xen ∈ R^{I×d} XenRI×d。作为一个分解架构, A u t o f o r m e r Autoformer Autoformer解码器的输入包含两部分:季节性部分 X d e s ∈ R ( I / 2 + O ) × d X_{des} ∈ R^{(I/2+O)×d} XdesR(I/2+O)×d和趋势周期部分 X d e t ∈ R ( I / 2 + O ) × d X_{det} ∈ R^{(I/2+O)×d} XdetR(I/2+O)×d,这些部分需要被细化。每个初始化包含两部分:一部分是从编码器输入 X e n X_{en} Xen的后半部分(长度为 I / 2 I/2 I/2)分解得到的组件以提供近期信息,另一部分是长度为 O O O的占位符,用标量填充。具体数学公式如下:
Xens , Xent = SeriesDecomp ( Xen I 2 : I ) Xdes = Concat ( Xens , X 0 ) Xdet = Concat ( Xent , XMean )              方程二 \begin{align*} \text{Xens}, \text{Xent} &= \text{SeriesDecomp}(\text{Xen}_{\frac{I}{2}:I}) \\ \text{Xdes} &= \text{Concat}(\text{Xens}, \text{X}_0) \\ \text{Xdet} &= \text{Concat}(\text{Xent}, \text{XMean}) \end{align*}\ \ \ \ \ \ \ \ \ \ \ \ \ 方程二 Xens,XentXdesXdet=SeriesDecomp(Xen2I:I)=Concat(Xens,X0)=Concat(Xent,XMean)             方程二

​ 其中, X e n s , X e n t ∈ R I / 2 × d X_{ens}, X_{ent} ∈ R^{I/2×d} Xens,XentRI/2×d分别表示 X e n X_{en} Xen的季节性和趋势周期部分,而 X 0 , X M e a n ∈ R O × d X_0, X_{Mean} ∈ R^{O×d} X0,XMeanRO×d分别表示用零填充的占位符和 X e n X_{en} Xen​的均值。

编码器

​ 编码器专注于季节性部分的建模。编码器的输出包含过去的季节性信息,并将作为交叉信息来帮助解码器细化预测结果。假设我们有 N N N个编码器层。第 l l l个编码器层的整体方程可以总结为 X l en = Encoder ( X l − 1 en ) X_l^{\text{en}} = \text{Encoder}(X_{l-1}^{\text{en}}) Xlen=Encoder(Xl1en)。具体细节如下:
S e n l , 1 , ‾ = S e r i e s D e c o m p ( A u t o − C o r r e l a t i o n ( X e n l − 1 ) + X e n l − 1 ) S e n l , 2 , ‾ = S e r i e s D e c o m p ( F e e d F o r w a r d ( S e n l , 1 ) + S e n l , 1 )      方程三 S_{en}^{l,1},\underline{}=SeriesDecomp(Auto-Correlation(X_{en}^{l-1})+X_{en}^{l-1})\\S_{en}^{l,2},\underline{}=SeriesDecomp(FeedForward(S_{en}^{l,1})+S_{en}^{l,1}) \ \ \ \ \ 方程三 Senl,1,=SeriesDecomp(AutoCorrelation(Xenl1)+Xenl1)Senl,2,=SeriesDecomp(FeedForward(Senl,1)+Senl,1)     方程三

​ 其中, ′   ‾   ′ '\underline\ \ '   表示被消除的趋势部分。 X e n l X_{en}^l Xenl是第 l l l个编码器层的输出, X e n 0 X_{en}^0 Xen0 X e n X_{en} Xen的嵌入表示。 S e n l , i , i ∈ { 1 , 2 } S_{en}^{l,i},i∈\{1,2\} Senl,ii{1,2},分别表示第 l l l层中第 i i i个序列分解块之后的季节性组件。我们将在下一节中详细描述 A u t o − C o r r e l a t i o n ( ⋅ ) Auto-Correlation(·) AutoCorrelation()​,它可以无缝地替代自注意力机制。

解码器

​ 解码器包含两个部分:用于趋势周期分量的累积结构,以及用于季节组分的堆叠自相关机制。每个解码器层都包含内部自相关和编码器-解码器自相关,这可以分别细化预测并利用过去的季节信息。模型在解码过程中从中间的隐藏变量中提取潜在趋势,允许 A u t o f o r m e r Autoformer Autoformer逐步细化趋势预测,并消除在自相关中发现基于周期的依赖关系时的干扰信息。假设有 M M M个解码器层。利用来自编码器的潜变量 X e n N X_{en}^N XenN,第 l l l个解码器层的方程可以总结为 X d e l = D e c o d e r ( X d e l − 1 , X e n N ) X_{de}^l=Decoder(X_{de}^{l-1},X_{en}^N) Xdel=Decoder(Xdel1,XenN)。解码器可以形式化如下:
S l , 1 d e , T l , 1 d e = SeriesDecomp (Auto-Correlation ( X l − 1 d e ) + X l − 1 d e ) S l , 2 d e , T l , 2 d e = SeriesDecomp (Auto-Correlation ( S l , 1 d e , X N e n ) + S l , 1 d e ) S l , 3 d e , T l , 3 d e = SeriesDecomp (FeedForward ( S l , 2 d e ) + S l , 2 d e ) T l d e = T l − 1 d e + W l , 1 ∗ T l , 1 d e + W l , 2 ∗ T l , 2 d e + W l , 3 ∗ T l , 3 d e          方程四 \begin{align*} S_{l,1}^{de}, T_{l,1}^{de} &= \text{SeriesDecomp (Auto-Correlation}(X_{l-1}^{de})+X_{l-1}^{de}) \\ S_{l,2}^{de}, T_{l,2}^{de} &= \text{SeriesDecomp (Auto-Correlation}(S_{l,1}^{de},X_N^{en})+S_{l,1}^{de}) \\ S_{l,3}^{de}, T_{l,3}^{de} &= \text{SeriesDecomp (FeedForward}(S_{l,2}^{de})+S_{l,2}^{de}) \\ T_{l}^{de} &= T_{l-1}^{de} + W_{l,1} \ast T_{l,1}^{de}+ W_{l,2} \ast T_{l,2}^{de}+W_{l,3} \ast T_{l,3}^{de} \\ \end{align*}\ \ \ \ \ \ \ \ \ 方程四 Sl,1de,Tl,1deSl,2de,Tl,2deSl,3de,Tl,3deTlde=SeriesDecomp (Auto-Correlation(Xl1de)+Xl1de)=SeriesDecomp (Auto-Correlation(Sl,1de,XNen)+Sl,1de)=SeriesDecomp (FeedForward(Sl,2de)+Sl,2de)=Tl1de+Wl,1Tl,1de+Wl,2Tl,2de+Wl,3Tl,3de         方程四
​ 其中, X d e l = S d e l , 3 , l ∈ { 1 , . . . , M } X_{de}^l=S_{de}^{l,3},l\in\{1,...,M\} Xdel=Sdel,3,l{1,...,M}表示第 l l l层解码器的输出。 X 0 d e X_0^{de} X0de 是从 X d e s X_{des} Xdes 中嵌入的,用于深度变换,而 T 0 d e = X d e t T_0^{de} = X_{det} T0de=Xdet 用于累积。 S l , i d e S_{l,i}^{de} Sl,ide T l , i d e T_{l,i}^{de} Tl,ide,其中 i ∈ { 1 , 2 , 3 } i ∈ \{1, 2, 3\} i{1,2,3},分别表示在第 l l l 层中经过第 i i i 个序列分解块后的季节组分和趋势-周期组分。 W l , i W_{l,i} Wl,i,其中 i ∈ { 1 , 2 , 3 } i ∈ \{1, 2, 3\} i{1,2,3},表示第 i i i 个提取的趋势 T l , i d e T_{l,i}^{de} Tl,ide 的投影器。

​ 最终的预测是这两个细化后的分解组分的和,即 W S ∗ X M d e + T M d e W_S * X_M^{de} + T_M^{de} WSXMde+TMde,其中 W S W_S WS 是将深度变换后的季节组分 X M d e X_M^{de} XMde 投影到目标维度的投影器。

自相关机制

在这里插入图片描述

图2:自相关(左)和时间延迟聚合(右)。我们利用快速傅里叶变换(Fast Fourier Transform)来计算自相关函数R(τ),该函数反映了时间延迟的相似性。然后,基于选定的延迟τ,将相似的子过程滚动到相同的索引位置,并通过R(τ)进行聚合

​ 提出了具有序列间连接的自相关机制,以扩大信息利用率。自相关机制通过计算序列的自相关来发现基于周期的依赖关系,并通过时间延迟聚合来聚合相似的子序列。

基于周期的依赖关系,观察到在周期中的相同相位位置自然提供了相似的子过程。受随机过程理论的启发,对于一个真实的离散时间过程 { X t } \{X_t\} {Xt},我们可以通过以下方程得到自相关 R X X ( τ ) R_{XX}(τ) RXX(τ)
R X X ( τ ) = lim ⁡ L → ∞ 1 L ∑ t = 1 L X t X t − τ 方程五 R_{XX}(\tau) = \lim_{L \to \infty} \frac{1}{L} \sum_{t=1}^{L} X_t X_{t-\tau}\\ 方程五 RXX(τ)=LlimL1t=1LXtXtτ方程五

R X X ( τ ) R_{XX}(τ) RXX(τ)反映了 { X t } \{X_t\} {Xt}与其延迟 τ τ τ的序列 { X t − τ } \{X_{t−τ}\} {Xtτ}之间的时间延迟相似性。如图所示,我们使用自相关 R ( τ ) R(τ) R(τ)作为估计周期长度τ的非标准化置信度。然后,我们选择最可能的 k k k个周期长度 τ 1 , … , τ k τ_1,…,τ_k τ1,,τk。基于上述估计的周期,可以推导出基于周期的依赖关系,并可以通过相应的自相关进行加权。

时间延迟聚合 基于周期的依赖关系连接了估计周期内的子序列。因此,我们提出了时间延迟聚合模块,该模块可以根据选定的时间延迟 τ 1 , … , τ k τ_1,…,τ_k τ1,,τk滚动序列。这种操作可以将处于估计周期相同相位位置的相似子序列对齐,这与自注意力家族中的逐点点积聚合不同。最后,我们通过 s o f t m a x softmax softmax归一化的置信度聚合子序列。对于单头情况和长度为 L L L的时间序列 X X X,经过投影器后,我们得到查询 Q Q Q、键 K K K和值 V V V。因此,它可以无缝地替代自注意力。自相关机制如下:
τ 1 , … , τ k = arg Top k { R Q , K ( τ ) } R ^ Q , K ( τ 1 ) , … , R ^ Q , K ( τ k ) = SoftMax ( R Q , K ( τ 1 ) , … , R Q , K ( τ k ) ) Auto-Correlation ( Q , K , V ) = ∑ i = 1 k Roll ( V , τ i ) ⋅ R ^ Q , K ( τ i ) 方程六 \tau_1, \ldots, \tau_k = \text{arg Top}_k \left\{ R_{Q, K}(\tau) \right\} \\ \widehat{R}_{Q, K}(\tau_1), \ldots, \widehat{R}_{Q, K}(\tau_k) = \text{SoftMax} \left( R_{Q, K}(\tau_1), \ldots, R_{Q, K}(\tau_k) \right) \\ \text{Auto-Correlation}(Q, K, V) = \sum_{i=1}^{k} \text{Roll}(V, \tau_i) \cdot \widehat{R}_{Q, K}(\tau_i)\\方程六 τ1,,τk=arg Topk{RQ,K(τ)}R Q,K(τ1),,R Q,K(τk)=SoftMax(RQ,K(τ1),,RQ,K(τk))Auto-Correlation(Q,K,V)=i=1kRoll(V,τi)R Q,K(τi)方程六

​ 其中 a r g   T o p k ( ⋅ ) arg\ Topk(⋅) arg Topk()是获取 T o p k Topk Topk个自相关值的参数,并令$k=\lfloor c×logL \rfloor , , c 是一个超参数。 是一个超参数。 是一个超参数。R_{Q,K} 是序列 是序列 是序列Q 和 和 K 之间的自相关。 之间的自相关。 之间的自相关。Roll(X,τ) 表示对 ∗ X ∗ 进行时间延迟 表示对*X*进行时间延迟 表示对X进行时间延迟τ 的操作,其中超出第一个位置的元素将被重新引入到最后的位置。对于编码器 − 解码器自相关, 的操作,其中超出第一个位置的元素将被重新引入到最后的位置。对于编码器-解码器自相关, 的操作,其中超出第一个位置的元素将被重新引入到最后的位置。对于编码器解码器自相关,K 、 、 V 来自编码器 来自编码器 来自编码器X_{en}^N 并会被调整为长度 并会被调整为长度 并会被调整为长度O ,而 ,而 ,而Q 来自解码器的前一个块。对于 来自解码器的前一个块。对于 来自解码器的前一个块。对于Autoformer 中使用的多头版本,具有 中使用的多头版本,具有 中使用的多头版本,具有d_{model} 个通道和 个通道和 个通道和h 个头的隐藏变量,第 个头的隐藏变量,第 个头的隐藏变量,第i 个头的查询、键和值是 个头的查询、键和值是 个头的查询、键和值是Q_i,K_i,V_i\in \mathbb{R}^{L\times \frac{d_{model}}{h}},i\in{1,…,h}$,。其过程如下:
MultiHead ( Q , K , V ) = W output × Concat ( head 1 , … , head h ) where  head i = Auto-Correlation ( Q i , K i , V i ) 方程七 \text{MultiHead}(Q, K, V) = W_{\text{output}} \times \text{Concat}(\text{head}_1, \ldots, \text{head}_h) \\ \text{where } \text{head}_i = \text{Auto-Correlation}(Q_i, K_i, V_i)\\方程七 MultiHead(Q,K,V)=Woutput×Concat(head1,,headh)where headi=Auto-Correlation(Qi,Ki,Vi)方程七
高效计算:对于基于周期的依赖关系,这些依赖关系指向底层周期中相同相位位置的子过程,并且本质上是稀疏的。在这里,我们选择最可能的延迟来避免选择相反的相位。由于我们聚合了 O ( l o g L ) O(log L) O(logL)个长度为 L L L的序列,因此方程 6 6 6 7 7 7的复杂度为 O ( L l o g L ) O(Llog L) O(LlogL)。对于自相关计算(方程 5 5 5),给定时间序列 { X t } , R X X ( τ ) \{X_t\},R_{X X} (τ) {Xt}RXX(τ)可以通过基于维纳-辛钦定理的快速傅里叶变换( F F T FFT FFT)来计算:
S X X ( f ) = F ( X t ) F ∗ ( X t ) = ∫ − ∞ ∞ X t e − i 2 π t f d t ⋅ ∫ − ∞ ∞ X t e − i 2 π t f d t ‾   R X X ( τ ) = F − 1 ( S X X ( f ) ) = ∫ − ∞ ∞ S X X ( f ) e i 2 π f τ , d f 方程八 \begin{align*} S_{XX}(f) &=F(X_t) F^*(X_t) = \int_{-\infty}^{\infty} X_t e^{-i2\pi tf} dt \cdot \overline{\int_{-\infty}^{\infty} X_t e^{-i2\pi tf} dt}^ \ \\R_{XX}(\tau) &= F^{-1}(S_{XX}(f)) = \int_{-\infty}^{\infty} S_{XX}(f) e^{i2\pi f\tau} , df \end{align*}方程八 SXX(f)RXX(τ)=F(Xt)F(Xt)=Xtei2πtfdtXtei2πtfdt =F1(SXX(f))=SXX(f)ei2πfτ,df方程八

其中 τ ∈ { 1 , . . . , L } τ ∈ \{1, ..., L\} τ{1,...,L} F F F表示 F F T FFT FFT F − 1 F^{-1} F1是其逆变换。 ∗ * 表示共轭操作, S X X ( f ) S_{X X} (f) SXX(f)是频域中的。请注意,通过 F F T FFT FFT可以一次性计算 { 1 , . . . , L } \{1, ..., L\} {1,...,L}中所有延迟的序列自相关。因此,自相关计算达到了 O ( L l o g L ) O(Llog L) O(LlogL)​的复杂度。

自相关与自注意族

在这里插入图片描述

图3:自相关与自注意力家族的比较。全注意力(a)适用于所有时间点之间的完全连接。稀疏注意力(b)基于提出的相似度指标选择点。对数稀疏注意力(c)选择点遵循指数增加的间隔。自相关(d)关注底层周期中子序列之间的连接。

​ 与逐点自注意力族不同,自相关展示了序列之间的连接(如图所示)。具体来说,对于时间依赖性,我们基于周期性来查找子序列之间的依赖关系。相比之下,自注意力族仅计算分散点之间的关系。尽管一些自注意力机制考虑了局部信息,但它们仅利用这些信息来帮助发现逐点依赖关系。对于信息聚合,我们采用时间延迟块来聚合来自底层周期中的相似子序列。相反,自注意力通过点积来聚合选定的点。得益于固有的稀疏性和子序列级别的表示聚合,自相关可以同时提高计算效率和信息利用率。

4.实验

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

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

相关文章

嵌入式系统概述

嵌入式系统是为了特定应用而专门构建的计算机系统,其嵌入式软件的架构设计与嵌入式系统硬件组成紧密相关。 1.嵌入式系统发展历程 嵌入式系统的发展大致经历了五个阶段: 第一阶段:单片微型计算机(SCM),及…

如何愉快地实施数仓模型,对比下厨做饭

一般我们建设数仓,有一个链路: 比如这样的 数据从原始层到DWD、DWS层、然后ADS层。 嘿,未来的大数据专家们!当我们开始实施数据模型时,不妨参考《大数据之路》这本宝藏书。 让我们一起简化流程,注重细节…

HTTPS缺失?如何轻松解决IP地址访问时的“不安全”警告

一、问题现象 如果访问网站时出现以下任何一种情况,则说明该网站需要立即整改: 1.浏览器地址栏那里出现“不安全”字样; 2.小锁标志被红叉()、斜线(\)等标志为不可用;…

第十三篇——信息正交性:在信息很多的情况下如何做决策?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 信息的正交性,让我们对信息有足够的判断,可以避免…

Spring源码:核心类的介绍

1. 前言 核心类代表了Spring框架中最基本的组件和功能,通过介绍这些类,学习者可以更好地理解Spring框架的核心工作原理和关键组件之间的关系。同时,了解这些核心类有助于学习者深入掌握Spring框架的使用和扩展方法。 2. ApplicationContextI…

luogu-P10570 [JRKSJ R8] 网球

题目传送门: [JRKSJ R8] 网球 - 洛谷https://www.luogu.com.cn/problem/P10570 解题思路 数学问题,暴力这个范围会超时。 首先,找出这两个数的最大公因数,将这两个数分别除以最大公因数,则这两个数互质,判…

深度神经网络——图像分类如何工作?

智能手机如何仅凭拍摄的照片就能识别物体?社交媒体网站又是如何自动标记照片中的人物?这些功能背后,是人工智能驱动的图像识别和分类技术。 图像识别和分类技术是人工智能领域中一些最令人瞩目的成就。但计算机是如何学会检测和分类图像的呢…

Docker系列.Docker Desktop中如何启用Kubernetes

Docker技术概论 Docker Desktop中如何启用Kubernetes - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.…

专硕初试科目一样,但各专业的复试线差距不小!江南大学计算机考研考情分析!

江南大学物联网工程学院,是由江南大学信息工程学院和江南大学通信与控制工程学院,于2009年合并组建成立“物联网工程学院”,也是全国第一个物联网工程学院。 江南大学数字媒体学院是以江南大学设计学院动画系和信息工程学院数字媒体技术系为…

开门预警系统技术规范(简化版)

开门预警系统技术规范(简化版) 1 系统概述2 预警区域3 预警目标4 功能需求5 功能条件6 显示需求7 指标需求1 系统概述 开门预警系统(DOW),在自车停止开门过程中,安装在车辆的传感器(如安装在车辆后保险杆两个角雷达)检测从自车后方接近的目标车(汽车、摩托车等)的相对…

实现钉钉扫码登陆

在钉钉开放平台查看:实现登录第三方网站 - 钉钉开放平台 1、在开发者后台创建应用,创建完应用之后,拿到应用的AppKey和AppSecret。 2、添加接口权限 3、配置frp内网穿透:(当第四步使用回调域名的重定向地址时&#xf…

关于flutter 启动 页面加载空白(三四秒空白页面)

一:可以在 对应的xml配置启动动画 <item><bitmapandroid:gravity"center"android:src"mipmap/ic_launcher" /></item> 二&#xff1a;以下是对应的文件目录 注意事项&#xff1a;俩处xml都配置一下&#xff0c;配置一样就可以了

那些年我看过的技术书(持续更新,大佬的成长之路)

作为一个技术人啊&#xff0c;要学会多看书&#xff0c;发展自己。哦也&#xff01;你可以不关注&#xff0c;就把文章点个收藏吧&#xff0c;万一以后想看书了呢&#xff1f; 网络安全 CTF篇 入门篇 《极限黑客攻防&#xff1a;CTF赛题揭秘》 Web篇 Reserve篇 《IDApro…

小白学RAG:大模型 RAG 技术实践总结

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

【人工智能基础学习】Andrew Ng-机器学习基础笔记

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

Python实现音乐播放器 -----------内附源码

Python做一个简易的音乐播放器 简易音乐播放器 import time import pygamefile r歌曲路径 pygame.mixer.init() print(正在播放,file) track pygame.mixer.music.load(file) pygame.mixer.music.play() time.sleep(130) pygame.mixer.music.stop()运行效果&#xff1a; 开始…

档案数字化扫描录入整理流程

档案数字化扫描录入整理流程可以分为以下几个步骤&#xff1a; 1. 确定扫描设备和软件&#xff1a;选择适合的扫描设备和软件&#xff0c;确保扫描质量和效率。 2. 准备档案文件&#xff1a;将待扫描的档案文件按照一定的分类和顺序进行整理和准备&#xff0c;如编号、分类、日…

数值计算精度问题(浮点型和双整型累加精度测试)

这篇博客介绍双整型和浮点数累加精度问题,运动控制轨迹规划公式有大量对时间轴的周期累加过程,如果我们采用浮点数进行累加,势必会影响计算精度。速度的不同 进一步影响位置积分运算。轨迹规划相关问题请参考下面系列文章,这里不再赘述: 1、博途PLC 1200/1500PLC S型速度曲…

英伟达SSD视觉算法分类代码解析

一、官方原代码 #!/usr/bin/env python3 # # Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Softwa…

计算机毕业设计 | SSM 校园线上订餐系统 外卖购物网站(附源码)

1&#xff0c; 概述 1.1 项目背景 传统的外卖方式就是打电话预定&#xff0c;然而&#xff0c;在这种方式中&#xff0c;顾客往往通过餐厅散发的传单来获取餐厅的相关信息&#xff0c;通过电话来传达自己的订单信息&#xff0c;餐厅方面通过电话接受订单后&#xff0c;一般通…