在NISQ小型计算机上执行大型并行量子计算的可能性
简介
Steve White提出了密度矩阵重整化群(DMRG)的基本思想,即纠缠是一种有价值的资源,可以用来精确或近似地描述大量子系统。后来,这一思想被理解为优化矩阵积状态(MPS)的算法,支持将张量网络用作波函数的变分参数化,其中纠缠是一个量化的资源。这种方法允许将计算资源集中在希尔伯特空间的特定区域,并提供了一种有效而通用的方式来模拟量子系统。此方法还为在有噪声的中等规模量子(NISQ)计算机模拟中分配纠缠资源提供了一个有效的框架。
目前,一些公司如谷歌、Rigetti和IBM的量子计算机采用可控的局部双量子位门,实现了有限深度的量子电路。创新之处在于将这些电路用作变分波函数,随机或通过相位估计来优化它们,并通过精确trotter化或变分进化算子来演化它们。然而,可用的NISQ设备受到栅极保真度的限制,进而限制了可用的纠缠资源。
由于有限深度的量子电路可以等效地表示为张量网络,因此张量网络提供了一个方便的框架,可以将纠缠资源分布到希尔伯特空间的有用区域,并有效地利用这一相对稀缺的资源。这种在NISQ设备上实现的张量网络被称为量子张量网络。这一框架有几个优点,包括适用于更广泛的经典和量子系统模拟,以及对于实现量子电路来说是一种自然的方法。此外,张量网络计算中的规范化步骤在明确的酉实现中通常是不必要的。
这一研究证明了量子张量网络的可行性,并展示了如何利用它来并行化量子模拟,尤其是在相对大型的系统中。它将量子系统分为弱纠缠的子元素,可以并行模拟,从而有效地减少了计算资源的需求。作者还提供了用于无限、平移不变的量子自旋链的Cirq和Qiskit代码示例,这些代码可用于将iMPS算法转化为量子电路机器。这些代码示例展示了一种简单的电路,用于表示无限量子态,并进行特定哈密顿量的优化和实时演化。
结果
跨弱纠缠切口的并行量子模拟
为了在小型NISQ机器上并行化我们的模拟,我们首先确定系统的分区,其中一个分区对另一个分区的影响可以通过少量信息来总结。这是通过在切口上进行施密特分解来实现的: ∣ ψ ⟩ = Σ α = 1 D λ α ∣ ϕ L α ⟩ ∣ ϕ R α ⟩ |\psi\rangle=Σ_{α=1}^Dλ^α|\phi_L^α\rangle|\phi_R^α\rangle ∣ψ⟩=Σα=1Dλα∣ϕLα⟩∣ϕRα⟩;其中,在切点的左边是一个标准正交的状态集合,在切点的右边也是相同的。 λ α λ^α λα称为施密特系数,D称为施密特阶或键序。保留 λ α λ^α λα仅高于某个阈值提供了一种压缩量子态表示的方法;通过沿着自旋链依次应用该方法,可以得到MPS结构。

如果在这样一个切口的右侧进行观察,则左边的量子态对观察的影响可以用与施密特系数相对应的D个变量来总结。同样的效果可以通过长度为log2D的自旋链上的有效状态来实现(见图1),可以通过SU(D2)酉VL在量子电路上进行参数化。这编码了施密特系数 λ α λ^α λα和标准正交态 ∣ ϕ L α ⟩ |\phi_L^α\rangle ∣ϕLα⟩。后者对右边的可观测值没有贡献,因此原则上,VL可以只用D个变分参数来参数化。精确的数值必须通过解决系统左边的量子力学问题来确定。同样地,对于切口左侧的观察,右侧的效果可以用一个统一的VR来总结。这为并行量子模拟提供了一个处方。量子波函数的计算可以在不同的量子电路上进行,也可以在同一电路上依次进行。左分区对右分区的影响,反之亦然——通过环境单元VL和VR——迭代到一致性。在迭代的每个阶段,必须执行测量以确定VL/R。切口的小Schmidt秩降低了这个过程的计算复杂度——如果我们要做全状态断层扫描,可以降低到O(poly (D)),但如果使用更复杂的方法,甚至可以降低到O(log(D)),如下节中的示例所示。在许多物理情况下,这种并行化可能是有用的。例如,具有局部化学活性的大型有机分子-这种活性可能被分子周围的部分调节或调整,并且这些效应的相互作用可以并行计算。在下文中,受iMPS张量网络的启发,我们给出了体现这些思想的量子电路。
量子张量网络并行仿真
平动不变MPS给出了平动不变自旋1/2状态的近似表示为:
∣ ψ ⟩ = Σ i , σ Π n . . . A i n − 1 , i n σ n − 1 A i n , i n + 1 σ n . . . ∣ . . . σ n − 1 , σ n . . . |\psi\rangle=\Sigma_{i,σ}\Pi_n...A^{σ_{n-1}}_{i_{n-1},i_n}A^{σ_{n}}_{i_{n},i_{n+1}}...|...σ_{n-1},σ_n... ∣ψ⟩=Σi,σΠn...Ain−1,inσn−1Ain,in+1σn...∣...σn−1,σn...
其中n标记晶格位置, σ n σ_n σn标记第n个位置的自旋1/2基态,in是从1到键阶D的辅助张量指标,张量 A i j σ A^σ_{ij} Aijσ在每个位置上都是相同的,反映了平移不变性。这些状态可以映射到量子电路中,方法一节中描述了采用等长形式的MPS张量,并将它们与电路酉元相识别。为了在量子模拟中对这些状态进行经典操作,已经开发了多种技术。这里我们只讨论量子电路的实现。补充材料给出了经典mps与其量子电路实现之间联系的详细总结。

代表状态:平移不变的键阶为D = 2N的自旋1/ 2mps状态可以用图2a所示的无限电路表示。在这种状态下,局部算子的期望值可以通过图2b所示的有限电路来评估。将无限回路缩到算子左边的效果是微不足道的,由于U∈SU(2D)的唯一性(它自动编码相关MPS张量的左正则形式)。向右的收缩由张量V∈SU(D2)描述,它编码了nlog 2D自旋的有效状态以及它们与左侧剩余系统的纠缠。这个单位由图2c所示的电路自洽地从U确定。如文献4所示,这种形式的MPS可以通过从左到右的施密特分解序列从任何状态构造。这保证了等距MPS表示的存在性和它的量子电路实现。参考文献19在IBM量子电路上演示了这种电路在D = 2时的操作,其中U和V的解析形式都是已知的,通过具有拓扑相变的模型的相图。一般情况下,V≡V(U)是未知的,必须根据图2c求解。

优化状态:通过最小化能量期望值,我们可以找到平动不变哈密顿算子的基态和相应的能量密度。该算法反映了变分量子特征求解器。局部哈密顿量的期望是通过测量物理量子位上相应的泡利弦得到的(见图2b)。然后,结果可以作为ansatz参数的函数最小化。更新必须与环境V的更新交织在一起,这样我们才能在有效的平移不变状态上进行优化。
评价状态:也许这个实现最引人注目的特性是可以轻松地实现时间演化。图3 a所示的简单电路返回一元U‘=U(t+dt),它将U(t)编码的状态更新为随哈密顿h演化的时间t + dt。该电路关于U0的第一个变化返回由Haegeman等人首次提出的iMPS的时变分原理。等效使用状态的定规到规范形式的自动编码,以及切空间及其定规的编码。正如上面确定最佳基态近似时一样,更新涉及两个嵌套循环;一个找到更新的U0一个找到环境张量L=L(U,U’),R=R(U,U’)。这两个在这种情况下都是必需的,因为电路对应于两个不同状态的重叠,而不是在给定状态下采取的期望。与图2相比,我们在图3中使用了一种稍微不同的方式来表示这些环境。

量子优势: 人们自然会问,以这种方式使用量子电路是否有任何量子优势。操纵iMPS的算法(iDMRG, TDVP等)是典型的高效算法——它们的复杂度为O(D3)。那么,在量子电路上实现改进的空间在哪里?量子优势来自于对键维D的依赖可能呈指数级降低。
在量子电路中,必须将多量子位一元元编译成可用的门集。具有纠缠态S的平动不变态可以用键维D~ exp S的矩阵积态来捕获。这要求电路深度为O (exp S)。任意U ∈ SU(2 exp S)单位实现该iMPS需要O(exp S) ~ O(D)个量子门。然而,具有纠缠S的非平凡酉元子集可以用深度为O(exp S) ~O(log D)的电路来实现,与经典实现相比,它具有指数级的加速。
这将压缩时间从典型的经典实现的O(D3)减少到量子情况下的O(log D)。虽然这些浅层电路存在,但问题仍然是它们是否具有我们感兴趣的状态的高保真度。键阶为D=4的例子如图2d所示,有之前的研究确定了浅层量子电路MPS的一个子集,它具有由哈密顿进化产生的状态的高保真度(D=4时最高)。
这证明了u的量子优势。我们还必须考虑环境V(或R和L)是否具有高保真的浅电路表示。先验地不能保证给定一个浅回路U,满足图2不动点方程的V,或满足图3不动点方程的R和L本身是浅的。然而,对此有一个严格的论证。我们从构造一个初始的浅层近似开始。当优化能量时,如图2所示,我们可以利用将减少的密度矩阵对角化到右边并选择相应的V的能力。对此,浅电路近似允许我们精确地设置logD施密特系数,其余部分位于它们之间的平滑插值上。在时间演化的情况下,混合环境R和L不一定同时对角化(尽管非对角元素是dt2阶的),并且允许这一点的更丰富(尽管仍然很浅)的变分参数化是必要的。在任何一种情况下,对于量子位和电路深度的线性成本,可以通过应用传输矩阵的线性次数,即通过使用功率方法(参见补充材料了解更多细节),以指数方式改善环境的浅层近似值。这简单地对应于在图3a的电路中心插入传输矩阵的进一步副本。这些参数为我们的算法建立了渐近量子优势。在实践中,我们发现最初的浅层近似被证明是非常准确的,这些修正是不必要的。
数值结果
我们编写了Cirq和Qiskit代码来实现图2和图3所示的量子电路。在谷歌的Cirq模拟器上仿真运行该代码的结果如图4所示。我们选择了横向场Ising模型的优化和时间演化,以及PXP哈密顿量的庞加莱剖面作为例证。横场Ising模型的性质已被很好地理解。洛施密特回波(时变波函数与初始波函数的保真度)揭示了一个动态相变,这为我们的模拟提供了一个重要的测试。我们的主要发现如下:(i)当没有门错误和一元U, V, L和R的完整表示时,我们的代码使用时间相关变分原理精确地再现了最佳iMPS及其时间演变。(ii)一元的因式分解降低了结果的保真度。随着分析的可表达性深度的增加,这些都得到了系统的改进。单单位的全参数化完全再现了经典MPS结果。(iii)从表示状态到优化状态,再到时间演化状态,对电路的深度和宽度提出了越来越高的要求。准确的结果需要越来越深的单位分解,并受到越来越不利的门误差的影响。


优化: 横向场Ising模型优化的仿真结果如图4所示。使用图4a中的方差对酉U进行分解。该结果与低深度电路的键合尺寸2 MPS的精确结果一致。这种分解比SU(4)的完全分解深度低得多。对于这个问题,状态单位的其他分解是可能的。通过识别横向场Ising模型的基态是由实张量组成(详见补充材料),可以使用较低深度的分析。
时间演变:使用酉矩阵的精确表示,我们准确地再现了预期的TDVP方程。我们证明了状态酉元的浅层分解能够有效地捕获洛施密特回波中的动态相变。制备了g = 1的横向场Ising模型的基态。这种状态在相同的哈密顿量下演化,但g = 0.2。在轨迹的每一步,记录当前状态与原始状态的重叠。图4c显示了整个轨迹的重叠对数。低深度状态能够准确地表示用于产生庞加莱图的状态,庞加莱图用于研究PXP模型中的慢量子热化。用图5所示的双参数电路定义状态。量子TDVP代码能够重建两个位点平动不变MPS状态的庞加莱映射。在这种情况下,有可能通过识别能量偏离已知值超过某个固定阈值的点来丢弃错误点。这是一种错误缓解形式,在使用量子TDVP算法时可能适用于其他问题,并可能有助于减轻NISQ设备噪声的影响。庞加莱图中较大的结构被误差扭曲,但在存在积分和随机优化误差时仍然可见。在补充材料中概述了噪声对量子TDVP算法的影响。

讨论
我们提出了一种通过将张量网络算法转换为量子电路来执行量子模拟的方法。我们的方法允许在小型NISQ计算机上对大型系统进行并行量子模拟。我们已经在一维平动不变自旋链中证明了这一点。MPS算法的转换自然地将矩阵乘积状态和切空间的基本特征编码到它们形成的变分流形中。在演示这种电路的操作时,我们触及了一些直接的问题,包括张量网络状态的浅层电路限制的表达性,它们对模拟的影响以及有限门保真度的影响。这些值得进一步系统研究。
我们的算法很容易扩展到非齐次一维系统和高维系统将一维状态包装到高维系统的方法。研究mps的其他规范限制(如现代经典时变分原理码的混合规范)也可以在量子电路中实现,这将是有趣的。更直接地描述高维系统的MPS推广也是可用的。例如,投影纠缠对态(PEPS)给出了二维泛化。要在量子电路上实现这些状态,它们必须由等距张量形成。直到最近,PEPS还没有合适的规范形式。其它文献提出的PEPS的等距版本显示出很大的希望,并且应该可以在适当连接的量子电路上实现。其他张量网络,如多尺度纠缠重整化分析(MERA)自然是基于酉算子的,可以在量子电路上实现。事实上,MERA已经被用于小型量子电路的图像分类和量子卷积神经网络
张量网络框架也提供了一个方便的途径来利用潜在的量子优势在模拟。一维矩阵积状态函数是有效可缩并的。计算局部算子期望所花费的时间与系统的长度成正比。量子实现的优势在于,这种缩放的前因子可能呈指数级下降。虽然经典张量网络可以有效地表示高维量子态的重要相关性,但其性质可能不是有效可收缩的。
PEPS状态的收缩可证明为# P-hard。然而,这些状态的物理相关子集可以有效地可收缩,并且它们的等距表示(其他文献的摩西移动可以在没有近似的情况下进行的等距pep确实是准局部和有限可收缩的)可以从组成酉元的浅表示中获得量子优势。量子算法的优势和成本之间的平衡可能很微妙;从经典理论中提取张量的元素是很容易的,但量子力学需要对电路状态进行断层扫描,这在测量自旋的数量上是指数级缓慢的。这可能是混合算法的瓶颈。使用张量网络框架在希尔伯特空间上适当地分配纠缠资源可以减轻这些成本。这项工作证明了将张量网络算法转换为量子电路的实用性,并为量子模拟开辟了一个尚未探索的方向。使用张量网络的经典量子系统模拟的所有进展都可能以这种方式转化。此外,它还提供了对经典算法的补充观点,表明在纯统一实现中相关的好处。
方法论

量子矩阵积态
我们使用的从MPS到量子电路的映射自动体现了许多变分流形及其切空间。这种映射到量子电路的简便性表明,它是MPS的天然家园。图2,3所示电路的基本组成部分是MPS张量。一个键阶为D,局部希尔伯特空间维数为D的张量用SU(dD)
矩阵表示: A i , j σ = U ( 1 ⊗ j ) , ( σ ⊗ i ) A^{σ}_{i,j}=U_{(1 \otimes j),(σ \otimes i)} Ai,jσ=U(1⊗j),(σ⊗i)
如图6所示。这种转换自动编码MPS张量的左正则形式 Σ σ ( A σ ) i , j † , A j , k σ = δ i k \Sigma_σ(A^{σ})^\dag_{i,j} ,A^{σ}_{j,k}=δ_{ik} Σσ(Aσ)i,j†,Aj,kσ=δik。这直接来自于u的酉性。MPS算法的经典实现包括在使用奇异值分解的算法的每一步之后将张量返回到这种形式——在量子算法中,这种操作是不需要的。
此外,酉元的剩余元素将切空间结构编码为MPS扩展的状态子流形。这些对于构造预测的哈密顿动力学是很重要的。 V ( σ ⊗ δ ≠ 1 ) , ( i ⊗ j ) = U ( δ ≠ 1 ) , ( σ ⊗ i ) V_{(σ\otimes δ \neq 1),(i \otimes j)}=U_{(δ\neq1),(σ \otimes i)} V(σ⊗δ=1),(i⊗j)=U(δ=1),(σ⊗i)并自动满足零或切规固定条件 Σ σ ( A σ ) i , j † , V j k σ , δ ≠ 1 = 0 \Sigma_σ(A^{σ})^\dag_{i,j} ,V^{σ,δ \neq 1}_{jk}=0 Σσ(Aσ)i,j†,Vjkσ,δ=1=0。这种结构负责图3所示的时变分原理的非常紧凑的量子实现,它避免了在每一步计算切空间结构的需要。
量子时变分原理
矩阵积态时变分原理的经典实现及其量子版本的等价性通过采用以下形式的更新单位的参数化可以得出:
U ′ = U e x p ( 0 X † X 0 ) U'=Uexp\begin{pmatrix} 0 & X^\dag \\ X & 0 \end{pmatrix} U′=Uexp(0XX†0)
取图3a中电路与状态 ∣ 000... ⟩ |000...\rangle ∣000...⟩的显式重叠,然后计算其对X的导数(时变分原理可回复)。将张量X与文献中的张量进行比较,用环境张量的平方根重新缩放。最快的方法是将电路扩展到张量X的二次阶以及X和dt的双线性阶,然后再对X求导。
文献方法: Haegeman, J. et al. Time-dependent variational principle for quantum lattices.
Phys. Rev. Lett. 107, 070601 (2011).
优化量子电路
我们的算法需要优化图2b和图3a中可观测值的期望,以及图2b和图3b、c中不动点方程的解,以确定环境和混合环境。在所有情况下,优化都是随机进行的。我们使用Rotosolve算法来加速我们的随机搜索。这利用了这样一个事实,即参数化量子电路的期望对任何特定参数的依赖是正弦的。因此,只需进行三次测量,就可以使该参数达到局部最优值。当电路的几个元件依赖于相同的参数时,扩展允许计算变化。
图解
图1:
一个量子态的张量网络,在一定的分区上弱纠缠。这种弱纠缠允许对系统的两个分区进行并行模拟。可以通过将左侧的状态替换为具有更少自旋的状态(由跨越切口的纠缠决定的数)来实现位于分区右侧的算子的期望。在这个较小的左侧表示中,相关性的数值由完整左侧系统中的量子效应决定,可以并行计算并迭代到一致性。
图2:
a表示平动不变态的无限深度和宽度量子电路。U∈SU(dD), d为局部希尔伯特空间维数,d = 2N为键阶。对于自旋1/2,D = 2,并且在本文中专门使用。在这些插图中D = 4。电路作用于图左侧的参考状态 ∣ 000... ⟩ |000...\rangle ∣000...⟩,应用从左到右顺序读取的幺正算子。b这种平动不变态的局部测量可以用所示的有限电路精确地再现。简化形式利用了U的唯一性,由于可观测点左边的位置没有贡献。环境酉向量V≡V(U)∈SU(D2)总结了观测值右侧位置的影响,并描述了nlog2D自旋上的有效状态。环境酉V(U)是所示不动点方程的解。这个方程被解释为自由量子位线所隐含的约化密度矩阵的等式。在“方法”一节中展示如何使用交换门实现这一点。d = 4状态的浅电路已被证明与哈密顿演化中获得的状态具有高保真度,并且在量子电路上的收缩速度比经典电路快得多。
图3:
时变分原理的量子实现。为简单起见,我们在D = 2时描述上述电路。在补充材料中给出了更高的键阶等级的情况。a在哈密顿量H下,优化该电路与 ∣ 000... ⟩ |000...\rangle ∣000...⟩重叠的幺正U0以时间间隔dt描述U(t)所描述的状态的时间演化,即U’=U(t+dt)。混合环境一元R和L由这些电路方程的不动点解给出。如图2所示,这些将被解释为自由量子位线所隐含的密度矩阵的相等。
图4
图4模型横向场模拟结果,研究了键阶为D=2的量子矩阵积态的哈密顿量 H = Σ n [ σ ^ n − 1 z σ ^ n z + λ σ ^ n + 1 x ] H=\Sigma_n[\hatσ_{n-1}^z\hatσ_{n}^z+λ\hatσ_{n+1}^x] H=Σn[σ^n−1zσ^nz+λσ^n+1x]。a)将SU(4)单元U和V编译到如图所示的电路中。改变参数p以提高精度。虽然对于2量子位一元性存在更有效的参数化3,以及更专门针对此问题的电路,但我们选择通用电路。b)使用图2所示的电路找到最佳状态。随着参数化深度的增加,该状态的能量更接近真实基态能量,并与传统MPS算法的能量收敛。特别是,我们已经检查了参攷的参数化完全再现MPS结果。请注意,在λ= 0时,哈密顿量是由产物状态优化的,而p=1则完美地捕获了产物状态。c)横向场Ising模型显示Loschmidt回波中的动态相变。这些在图3所示电路所体现的量子时变分原理的模拟运行中揭示。需要更精确的电路来获得良好的一致性。上述精确的结果是精确的分析结果。
图5
哈密顿量 H = Σ n ( 1 − σ ^ n − 1 z ) σ ^ n x ( 1 − σ ^ n + 1 z ) H=\Sigma_n(1-\hatσ_{n-1}^z)\hatσ_{n}^x(1-\hatσ_{n+1}^z) H=Σn(1−σ^n−1z)σ^nx(1−σ^n+1z),最初被用来描述使用里德伯原子进行量子模拟的结果,显示了一种被称为多体疤痕的奇怪性质,由此可以发现从某些起始状态开始,可以用低键阶MPS描述的持续振荡。这些都可以使用图3的量子时变分原理在NISQ机器上进行研究。a为D = 2的一组简单的2点周期态由每个位点只有2个参数的电路参数化,因此总共有4个参数。b通过参考文献中提出的运动矩阵积状态方程的经典模拟得到的平面θ1 = 0.9的局部庞加莱截面。初始条件选择在恒能表面 H = 0 H=0 H=0上。在初始条件下沿间距为 δ ϕ 1 = 3 × 1 0 − 2 δϕ_1 = 3 × 10^{−2} δϕ1=3×10−2,θ1 = 0.9和θ2 = 5.41的直线生成局部图。最后一个参数, ϕ 3 ϕ_3 ϕ3,用来固定能量。c在Cirq中模拟量子时变分原理生成的相同庞加莱图。虽然图形在集成过程中有些模糊,但主要特征仍然很明显。
图6
a)MPS张量到量子电路的转换。从Nlog二维量子比特创建键阶D的辅助索引。b)标准形式意味着MPS向左收缩的效果是微不足道的。通过将MPS映射到量子电路,U的唯一性自动地将张量置于左正则形式。
相关文章:
在NISQ小型计算机上执行大型并行量子计算的可能性
简介 Steve White提出了密度矩阵重整化群(DMRG)的基本思想,即纠缠是一种有价值的资源,可以用来精确或近似地描述大量子系统。后来,这一思想被理解为优化矩阵积状态(MPS)的算法,支持…...
考虑时空相关性的风电功率预测误差MATLAB代码
微❤关注“电气仔推送”获得资料(专享优惠) 风电功率预测置信区间误差分析拟合 1.风电功率预测误差--时空相关性 展示第一一个时间段的风电功率预测与实际风电功率值的比较。填充区域表示预测的不确定性,显示了95%置信区间内预测可能的范围…...
ASP.NET WebApi 极简依赖注入
文章目录 环境服务类启动项注入使用依赖注入的优点 环境 .NET Core 7.0ASP.NET CoreVisual Studio 2022 服务类 public class T_TempService {public T_TempService(){}public void Test(){}}启动项注入 #region 依赖注入 builder.Services.AddTransient<T_TempService&g…...
解决proteus仿真stm32,IIC通讯,IIC DEBUG无法显示从机应答信号的问题(问题情况为在8位数据后应答位显示?)
1、错误现象 错误现象如下,在IIC数据传输8位数据后,IIC DEBUG的应答位无法显示应答位 2、错误原因 我们打开信号传输的示波器,直接去查看IIC从机校验位的数据波形,可以看到从机示波器显示的的波形为半高ACK,那错误原…...
PHP判断闰年
闰年的规则 1.能被4整除且不能被100整除 (普通闰年) 2.能被400整除,公历年份是整百数的,必须是400的倍数才是闰年(世纪闰年) 代码 function isLeapYear($year) {if($year%40 && $year%100!0){r…...
证照之星XE专业版下载专业证件照制作工具
值得肯定的是智能背景替换功能,轻松解决背景处理这一世界难题。不得不提及的是新增打印字体设置,包含字体选择、字号大小、字体颜色等。不同领域的应用证明了万能制作,系统支持自定义证照规格,并预设了17种常用的证件照规格。人所…...
VR全景图片如何制作?揭秘VR全景图片制作全流程
引言: VR全景图片是一种以全景视角为基础的图片制作技术,能够呈现出更为真实、立体的视觉体验。通过VR全景图片,观众可以360环顾四周,仿佛身临其境,提供了一种全新的感官体验,那么如何制作出令人满意的全景…...
vue element el-table-column 循环示例代码
如果你想循环生成多个el-table-column,可以使用v-for指令。以下是一个示例: <template><el-table :data"tableData"><el-table-column v-for"column in columns" :key"column.prop" :label"column.l…...
R语言生物群落(生态)数据统计分析与绘图实践技术应用
R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来自经典…...
有了 GPT,还需要付费咨询吗?
之前写过一篇文章《在创业公司,我靠它续命 …》,提到现在写代码基本靠 GPT。现在这种状况不仅没有改变,反而依赖更深。公司立项开发产品的 Linux 版本,全靠我一个人。我之前虽然一直使用 Linux 开发环境,对 Linux 系统…...
如何搭建一台服务器?
一.准备工作 1. 确定服务器类型:根据需求选择适合的服务器类型,如网站服务器、数据库服务器、文件服务器等。 2. 选择操作系统:根据服务器类型选择合适的操作系统,如Linux(如Ubuntu、CentOS)、Windows Se…...
[转载]C++序列化框架介绍和对比
Google Protocol Buffers Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等。 Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说&…...
分类预测 | Matlab实现KOA-CNN-BiLSTM-selfAttention多特征分类预测(自注意力机制)
分类预测 | Matlab实现KOA-CNN-BiLSTM-selfAttention多特征分类预测(自注意力机制) 目录 分类预测 | Matlab实现KOA-CNN-BiLSTM-selfAttention多特征分类预测(自注意力机制)分类效果基本描述程序设计参考资料 分类效果 基本描述 1…...
浮点数和定点数(上):怎么用有限的Bit表示尽可能多的信息?
目录 背景 浮点数的不精确性 定点数的表示 浮点数的表示 小结 背景 在我们日常的程序开发中,不只会用到整数。更多情况下,我们用到的都是实数。比如,我们开发一个电商 App,商品的价格常常会是 9 块 9;再比如&…...
一文详解汽车电子LIN总线
0.摘要 汽车电子LIN总线不同于CAN总线。 LIN总线基本上是CAN总线的廉价补充,相比于CAN总线,它提供较低的可靠性和性能。同时LIN总线也是一个应用非常广泛的网络协议,并且越来越受欢迎。 再一次,我们准备了一个关于LIN总线的简要…...
论文阅读——GPT3
来自论文:Language Models are Few-Shot Learners Arxiv:https://arxiv.org/abs/2005.14165v2 记录下一些概念等。,没有太多细节。 预训练LM尽管任务无关,但是要达到好的效果仍然需要在特定数据集或任务上微调。因此需要消除这个…...
星环科技分布式向量数据库Transwarp Hippo正式发布,拓展大语言模型时间和空间维度
随着企业、机构中非结构化数据应用的日益增多以及AI的爆发式增长所带来的大量生成式数据,所涉及的数据呈现了体量大、格式和存储方式多样、处理速度要求高、潜在价值大等特点。但传统数据平台对这些数据的处理能力较为有限,如使用文件系统、多类不同数据…...
滚动条默认是隐藏的只有鼠标移上去才会显示
效果 在设置滚动条的类名中写 /* 滚动条样式 */.content-box::-webkit-scrollbar {width: 0px; /* 设置纵轴(y轴)轴滚动条 */height: 0px; /* 设置横轴(x轴)轴滚动条 */}/* 滚动条滑块(里面小方块) */.…...
Go学习第十五章——Gin参数绑定bind与验证器
Go web框架——Gin(参数绑定bind与验证器) 1 bind参数绑定1.1 JSON参数1.2 Query参数1.3 Uri绑定动态参数1.4 ShouldBind自动绑定 2 验证器2.1 常用验证器2.2 gin内置验证器2.3 自定义验证的错误信息2.4 自定义验证器 1 bind参数绑定 在Gin框架中&#…...
EtherCAT的4种寻址方式解析
我们知道,一个EtherCAT数据帧(frame)里面包含很多个报文(datagram),不管是什么样式的报文,它们的目的只有一个,就是读写从站寄存器或内存。所以寻址就是以什么方式访问哪个从站的哪个…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
