【博士每天一篇论文-综述】Brain Inspired Computing : A Systematic Survey and Future Trends

news2024/11/16 21:48:52

阅读时间:2023-11-17

1 介绍

年份:2023
作者:李国琪
期刊:TechRxiv
引用量:2
这篇论文主要介绍了脑启发计算(Brain Inspired Computing,BIC)以及其在人工智能(Artificial Intelligence,AI)领域的相关性。BIC是一个交叉学科的领域,涵盖了众多的领域,如计算神经科学、统计物理学、芯片设计、材料科学、计算机科学和人工智能。论文指出,BIC旨在基于生物神经系统的信息处理机制和结构,构建基本理论、模型、硬件架构和应用系统。并提出了建立基于脉冲神经网络(SNN)的理论模型、训练算法、硬件架构和应用系统的概念。本文重点关注BIC基础设施开发的四个组成部分:建模/算法、硬件平台、软件工具和基准数据。

2 创新点

(1)系统性的综述:这篇论文提供了对脑启发计算(BIC)领域的系统性综述,包括模型/算法、硬件平台、软件工具和基准数据四个组成部分的最新进展、主要挑战和未来趋势。
(2)多领域跨学科:这篇论文的作者团队拥有涵盖脑启发计算理论、数据、计算架构、软件和芯片设计等方面的全栈知识,在多个领域跨学科的背景下进行了广泛的综述,使读者能够从更广阔的视角思考这个领域。
(3)提出了BIC系统框架:在论文中,提出了一个面向真实世界应用的BIC系统的框架,该框架有望对人工智能和脑科学都产生积极影响。

3 相关概念

(1)ANNs
人工神经网络(ANNs)是由神经元组成的神经网络,通过接收来自连接的前神经元的信号,进行非线性转换,然后产生一个广播到后神经元的输出信号。
(2)SNNs
脉冲神经网络(SNNs)可以通过用脉冲神经动力学替代每个单个神经元或突触权重来看作是ANNs。脉冲神经动力学的范围变化很大,可以是简单的一阶微分方程,也可以是一组微分方程,甚至动力学存在于细胞体和树突之中。ANN和SNN共享相同的网络拓扑,区别在于SNN中的神经元由于神经动力学而具有微分方程的特性。由于SNN具有丰富的动态特性,其中的脉冲依赖于神经线路的概念,能量效率要比传统神经计算高。
(3)BIC
BIC(Brain-Inspired Computing)与深度学习需要明确区分,深度学习模型主要是建立在ANNs上的,其中每个神经元都是一个MAC单元后面跟随一个非线性函数,无论网络有多深、多宽和复杂。另一方面,BIC主要建立在SNNs上,其中每个神经元具有丰富的动态特性。
(4)ANN加速器与神经形态芯片
深度学习加速器主要是指ANN加速器,其使用特定的芯片来加速ANN的执行。ANN加速器的架构通常采用冯·诺伊曼变体。而神经形态芯片从一开始就旨在模拟基于大脑的SNNs,设计芯片架构时要考虑生物神经元的每个部分(树突、细胞体、突触和轴突)。
(5)神经形态计算
神经形态计算是基于利用包含电子电路的VLSI(超大规模集成电路)系统来模仿神经系统生物功能的计算。“神经形态”常用来描述模拟神经系统模型的模拟、数字、模拟-数字混合VLSI和软件系统。在本文中,“神经形态”是经过硬件加速的经典BIC的子集。
(6)经典BIC
经典BIC旨在通过从计算神经科学中学习生物神经系统的机制、结构和功能来建立理论、模型、架构和硬件系统。从建模的角度来看,经典BIC主要指SNN模型、神经形态芯片及其受计算神经科学启发的应用。从计算架构的角度来看,经典BIC通常利用近存储计算架构和内存计算架构。经典BIC是神经形态计算的超集,因为经典BIC不仅限于硬件,其理论、模型、架构和硬件系统都可以受到生物神经系统行为和物理的启发,因此神经形态芯片也可以被称为BIC芯片。
(7)Brain for AI
“Brain for AI”是指通过从神经系统中获取信号传输和学习规则、大脑的结构和功能、或人类的心理或认知过程的启示来增强AI技术。这可以减少AI消耗的资源和电能,在大脑中是基本的但对传统AI来说困难的任务上取得可比较的性能,建立下一代AI的通用原则或框架,或解决深度学习领域的现有问题。经典BIC是Brain for AI的一个子集,因为前者主要关注系统的计算/学习能力,而后者还可以涉及与AI技术相关的一般概念。
(8)AI for Brain
“AI for Brain”可以借助AI技术为大脑科学提供动力,这样就可以通过AI框架解释大脑中的复杂现象,更好地理解大脑的结构和功能。此外,AI可以加强大脑成像技术,并促进对大脑结构或功能的研究。
(9)Generalized BIC
Generalized BIC广义上考虑了Brain for AI和AI for Brain两个领域。大多数新兴技术,如经典BIC、脑机接口、脑图、神经影像等与AI和大脑相结合的应用都属于广义BIC,其概念必须与科学和工程的发展步伐保持一致并不断变化。

4 相关研究

4.1 算法/模型

现有的类脑算法和模型包含了单个神经元在细胞层面上的模型,以及SNN模型在网络层面上的模型和训练机制。
(1)SNN等于ANN加上神经元动力学
ANN和SNN可以共享相同的网络拓扑,不同之处在于SNN中的神经元由于神经元动力学而被表征为微分方程,其中脉冲依赖于这样的动力学。人工神经网络(ANN)神经元在没有时间维度的情况下产生输出[215],[216]。脉冲模型则模拟细胞体(和树突分区)中膜电位(以及可能的其他状态变量)的动力学,其输出是在一定时间内的脉冲列。
(2)神经元动力学的范围差异很大

  • 一阶微分方程:leaky integrate-and-fire(LIF)模型[48]
  • 一组微分方程:Hodgkin-Huxley(H-H)模型[49]、zhikevich模型[213]
  • 动力学不仅存在于细胞体中,还存在于树突[50、51、52]

(3)关于学习算法,现有的方案可以分为三类,

  • 无监督学习[24],[53]
  • ANN-SNN转换[54]-[61]
  • 直接训练算法[20],[62] -[75]

(4)其他类脑算法模型

  • liquid state machine液态机器[76]
  • echo state networks回声状态网络(ESN)[77]
  • continuous attractor neural networks连续吸引子神经网络(CANN)[78]

(5)ANN的网络学习算法
ANN的训练是一个依赖于数据的过程,其目标是优化网络的关键参数以完成特定的任务。包括SGD、ADAM、AMSGrad。
(6)SNNs的网络学习算法

  • 源于生物突触可塑性的无监督学习:注重生物合理性

突触可塑性是神经记忆和学习的生物基础,突触可塑性规则包括Hebbian learning and spike-timing dependent plasticity(STDP)和Bienenstock-Cooper-Munro(BCM)[227]。Guyonneau[224]发现在STDP规则下,通过传入神经元群体对目标脉冲进行模拟,可以在单个突触后神经元中实现快速识别和选择性响应。Diehl等人[53]展示了一个仅由单层兴奋型神经元和相应的抑制型神经元构成的双层SNN,其中来自输入的兴奋型连接通过STDP进行训练,随后的抑制层确保神经元之间的侧向抑制和竞争。完成无监督训练后,兴奋型神经元能够有选择地对输入特征进行响应,在MNIST上达到95%的准确率。Masquelier等人[225],[226]设计了一种基于STDP的前馈SNN,模仿大脑中腹侧视觉通路的特点。该网络逐渐发展出对共同特征的选择性,并缩短了激活神经元所需的延迟,最终重要特征信息的脉冲会快速发出,并可用于分类任务。此外,将STDP规则应用于脉冲卷积神经网络(CNNs)[24]。最后神经元的膜电位被插入支持向量机(SVM)作为分类器的输入,实现了在MNIST上98.4%的准确率。
BCM(Bienenstock-Cooper-Munro)规则[227]是另一种基于视觉皮层实验提出的突触可塑性规则,最初于1982年提出。原始的STDP规则没有包括用于突触连接的衰减或增强机制,导致构建模型时不稳定。因此,BCM规则假设神经元具有根据历史的权重变化动态调整的阈值,并被用于确定突触变化的趋势,使得连接最终能达到稳定状态。随后的SWAT(synaptic weight association training)[228]在BCM规则中引入了变化阈值,形成了对STDP窗口形状的负反馈调节,增强了训练的稳定性。

  • 融合深度学习方法的有监督学习算法
    • ANN-SNN转换算法:主要考虑效果。该方法的基本思想是,在离线训练的ANN中,使用ReLU作为非线性函数的连续激活值可以通过SNN中的平均发放率来近似表示。因此,通过对已经进行了适当修改的离线训练ANN的权重进行适当的修改,可以通过其脉冲版本获得类似的输入-输出映射。本质上,训练依赖于在ANN中执行的反向传播,因此避免了直接训练SNN时遇到的微分困难。为了使模型在转换后对脉冲活动更具适应性,对原始的ANN模型施加一定的结构约束。[56][61][231][60][55][56][232][233][234]。缺点:与直接训练SNN相比,完成推理仍然需要很长的模拟时间,这可能导致额外的延迟和能源消耗。大多数转换后的SNN仅适用于静态图像,并不适用于神经形态的流数据。此外,转换方法更关注缩小ANN和SNN之间的性能差距,而不是探索SNN的内在动力学或独特性,因此它们在推动脑启发式智能方面的作用相对有限。
    • 直接训练算法:注重效率和训练能力。直接训练是指直接使用梯度下降算法训练SNN。直接训练方法可以分为以下两类。优缺点:直接训练的网络学习有效地编码信息,比转换方法更少的时间。但是会存在模型规模有限的问题,因此进一步的研究包括阈值相关批归一化[62],[243],脉冲残差学习[63],[64],基于注意力的SNNs [65],[244],和脉冲变压器[66],[245]。
      • 基于速率编码(rate coding)的方法通过使用替代导数来处理射频函数的不可微性,并计算相对于脉冲激活的梯度。通常采用替代梯度函数或平滑的激活函数,将不连续的脉冲活动连续化,以便通过时间的反向传播(BPTT)来训练SNN。这种方法可以通过空间和时间域解决信用分配问题。[235 ]
      • 基于时序编码(temporal coding)的方法则关注现有脉冲的时序,并计算相对于脉冲时序的梯度。通常使用脉冲响应核来描述一个神经元的脉冲事件如何影响另一个神经元,这样可以在没有显式积分的情况下模拟SNN,并将单个脉冲的发放时刻视为神经元的状态变量,而不是0/1的脉冲模式[235][239、240、241、242]。

截屏2023-12-26 下午3.44.39.png
(7)研究目标

  • 生物合理性

现有的BIC算法只能模拟生物神经元的体细胞动态,如果能将更多神经科学机制有机地融入BIC算法中以增强其生物学合理性,能够突破传统AI巨能源消耗大和鲁棒性差的瓶颈。

  • 有效性

设计规模扩大的SNNs [62]-[64],基于成熟反向传播算法的更有效训练[75],[236],能够有效地实现机器智能。

  • 效率

BIC在并行处理上有巨大的效率和效果潜力,比如脉冲编码使得突触的交流操作比常规AI中的操作节约了约五倍的能量 [266][260]。已知提升效率的一些影响因素包括脉冲神经元建模、网络结构和规模、数据集大小、训练技术、惩罚函数等等。比如,引入可学习的膜时间常数[69],融合长短期记忆单元[260],或调节神经元级别的膜电位分布[267],可以起到调节脉冲活动和任务准确性的作用。基于参数正则化方法包括活动正则化或网络压缩[237],[268],[269]。以及基于数据依赖处理的方法,即根据输入调整脉冲响应,例如在时序维度直接屏蔽不重要的信息[68],以减少脉冲同时保持任务性能。

  • 可训练性

由于脉冲神经元的复杂时间动力学和脉冲活动的不可区分性,SNN的训练比较困难。当使用具有更丰富神经元动力学的网络来解决当前AI模型无法完成或完成得很好的任务时,可训练性成为一个重要的问题需要解决。尤其网络规模已被证明是提高深度学习模型性能和可扩展性的关键因素。所以,需要进一步开发更符合生理学的细粒度脉冲神经元模型,提高BIC算法的可训练型。

4.2 硬件

4.2.1 神经形态传感器

用脉冲输出的神经形态相机使用时空一位点来编码光强度[277]。一般来说,这些仿生相机可以分为两类,包括动态视觉传感器(DVS)[158]和时基图像传感器[278]。
(1)动态视觉传感器
一些典型的事件相机包括DVS128 [158]、DAVIS346 [148]、CeleX-V [273]、Prophesee Gen4 [274]、ATIS [275]等。由于具有高时间分辨率(微秒级)、高动态范围(HDR)、低冗余、低延迟和低功耗的优势。
(2)时基图像传感器
典型的视觉传感器包括ATIS [275]、章鱼视网膜 [276]、Vidar Gen1 [272]等。空间分辨率、传输带宽和填充因子有明显的增加趋势,而芯片尺寸和像素尺寸有所减小。时基图像传感器可以通过脉冲频率或脉冲间隔重构出细腻的纹理,但无法直接从读出电路中获取动态信息。
截屏2023-12-26 下午4.52.03.png

4.2.1 BIC芯片

BIC芯片也可以被称为神经形态芯片。不同于深度学习加速器,BIC芯片是仿真以大脑为灵感的SNNs。在大脑皮层中,计算和存储器是集成在一起的,而不是在冯·诺依曼架构中明确分离。因此,大多数BIC芯片采用了多核分散架构[84],每个核心都具有紧密耦合的局部计算和存储资源。BIC芯片具有巨大的计算并行性和高内存局部性,无需访问片外存储器。主流的神经形态/BIC芯片和平台可以根据功能、计算架构和实现技术分为三个独立的角度。
(1)从功能的角度来看,现有的BIC芯片可以分为三类

  • 支持SNNs
  • 支持SNNs和ANNs的[85],[86]
  • 支持学习规则的[87]-[92]

一些经典的功能芯片,包括斯坦福大学的Neurogrid [93],海德堡大学的BrainScaleS [87],曼彻斯特大学的SpiNNaker [81],IBM的TrueNorth [14],瑞士苏黎世联邦理工学院的ROLLS [88]和DYNAPs [94],浙江大学的Darwin [83],英特尔的Loihi [41],布鲁塞尔大学的ODIN [89]和MorphIC [90]等。
一些团队提出开发跨范式平台,结合SNN和ANN。清华大学的天机 [85],[86]是首个发明混合模型和架构的BIC芯片,可以支持SNN,ANN和混合神经网络(HNNs)[283]。
(2)从架构的角度来看

  • 近内存计算架构[14],[41],[44],[81]-[83],[85]-[90],[93]-[95]:近内存计算架构是指在一个核心内部将计算和内存资源分离但距离很近的架构。多数早期的神经形态芯片都采用了近内存计算架构。TrueNorth、Tianjic、Darwin、Loihi、ODIN和MorphIC等芯片都在每个核心中采用了分离但紧密的内存和计算。SpiNNaker将外部内存密集地放置在每个计算芯片上,也可以看作是与常见的冯·诺依曼架构相比的近内存计算。最近,研究人员在设计人工神经网络加速器时,也借鉴了BIC领域的类似架构。例如,Graphcore的出现IPU、Habana的Goya和Gaudi、阿里巴巴的Hanguang以及NVIDIA的Simba都将分布式多核架构应用于其ANN加速器中以提高吞吐量。这些芯片中每个核心的组织方式也属于近内存计算架构。
  • 内存计算架构[96]-[98]:指将计算和内存资源物理上融合在一起的架构。在这种架构中,突触积分的矩阵操作在突触内存中执行。通常有两种类型的计算用内存:基于传统内存和基于新兴内存。传统内存,如SRAM、DRAM和Flash,可以重新设计以支持一些逻辑操作。新兴内存主要指基于记忆电阻器的存储设备。
  • ANN加速器变体[99]-[102]

(3)从实现的角度来看
需要考虑的因素包括应用场景、PPA(性能、功耗和面积)和可编程性[103]。小规模芯片和大规模芯片是两个不同的类别,对于小规模芯片来说,边缘应用、低功耗和实时响应是刚性需求。然而,对于大规模芯片来说,主要目标是构建一个大脑模拟器来探索人工通用智能。大规模芯片的设计原则与小规模芯片不同,需要考虑可扩展性、可编程性、可靠性和兼容性等因素。目前,BIC芯片面临的挑战包括跨域融合、传感器集成、性能挑战和系统易用性。最近的BIC芯片越来越关注BIC系统、软件工具链和应用领域,以提高用户体验。
截屏2023-12-26 下午5.08.35.png

4.3 软件工具

截屏2023-12-26 下午5.08.35.png
大脑启发软件可以根据其用途和基础结构分为三类
(1)神经形态工具链[40],[41],[82],[83],[85]-[87],[93],[104]-[106]
神经形态工具链通常是针对特定芯片并行设计的,其目的是方便高级模型的设计,并将程序编译成由芯片支持的计算原语描述的低级可执行代码。
HICANN [87]使用PyNN [122]作为Python接口,用于指定模型架构、输出的评估以及部署到硬件上的实验形式。由于生物网络具有基于图的表示,因此配置数据的计算方式与将用HDL编写的设计部署到FPGA上的过程类似。
BrainScaleS [87]软件通过PyNN [122]提供了实验电子规范的统一表示,并将生物设计转化为硬件原语。BrainScaleS2 [82]使用修改后的GCC编译器作为工具链,支持矢量指令。基于该编译器,硬件与C++标准库兼容。因此,硬件抽象库(HAL)可以在芯片和主机系统上都可用。
Neurogrid [93]的软件具有用于交互可视化的GUI界面和用于将模拟网络转化为硬件空间的硬件抽象层(HAL)。
Darwin [83]提供了一个层次结构和模块化的操作系统Darwin-S,具有自己的模型定义语言。应用IDE包括模型开发工具包和调试工具,方便用户使用。
TrueNorth [40]团队开发了一种用于模型定义的本地Corelet语言,以及用于模拟芯片架构的Compass软件。它还支持各种可组合的算法用于应用开发。
Loihi [41]的工具链包括一个Python API,用于设计SNN的拓扑结构和自定义学习规则。编译器和运行时库用于将模型转化为在芯片上执行的原语。Loihi 2 [106]是Loihi的第二代,它提供了一个名为Lava的开源软件,该软件是与硬件无关的。Lava不针对特定芯片,声称可在传统处理器和神经形态学处理器之间实现可移植性。
Braindrop [104]提供一个将抽象计算转化为在芯片上执行的可执行代码的自动化合成软件。该软件包括与Nengo [309]软件的前端交互和与驱动软件的后端接口。
SpiNNaker [105]提供了一个基于PyNN描述或其他格式的配置软件。它获取神经电路的定义并生成路由信息。神经网络和节点拓扑被视为一个图,可以通过软件配置,然后上传到节点网格。
Tianjic [85],[86]是第一个将ANN和SNN集成到具有多核架构的混合神经形态学芯片的尝试。他们开发了一个软件框架,用于对各种神经网络进行统一描述和转换。
(2)算法编程平台[107]-[117]
算法编程平台中的软件希望促进snn的实现并利用计算机科学的进步。
BindsNet、PySNN、SpyTorch、SpikingJelly、Norse和SNNtorch支持通用的SNN。BindsNet特别适用于机器学习和强化学习,并具有与OpenAI gym的接口。PySNN专注于基于相关性的学习方法。SpyTorch提出了一种名为SuperSpike的新型替代梯度方法,用于平滑尖峰信号。SpikingJelly集成了许多神经形态学数据集,如CIFAR10-DVS、ASL-DVS和DVS Gesture,用户可以轻松加载这些数据集。Norse试图引入SNN的稀疏和事件驱动特性,并支持许多典型的神经元模型。SNNtorch建立了一些在线变种的反向传播方法,更符合生物学的可行性。

(3)大脑网络模拟器[118]-[133]
脑网络模拟器旨在模拟支持多种神经活动和突触模型的生物神经网络,或作为验证硬件性能,测试潜在硬件修改以及在没有广泛部署硬件的情况下开发脑启发算法的重要工具。BindsNet、PySNN、SpyTorch、SpikingJelly、Norse和SNNtorch支持通用的SNN。BindsNet特别适用于机器学习和强化学习,并具有与OpenAI gym的接口。PySNN专注于基于相关性的学习方法。SpyTorch提出了一种名为SuperSpike的新型替代梯度方法,用于平滑尖峰信号。SpikingJelly集成了许多神经形态学数据集,如CIFAR10-DVS、ASL-DVS和DVS Gesture,用户可以轻松加载这些数据集。Norse试图引入SNN的稀疏和事件驱动特性,并支持许多典型的神经元模型。SNNtorch建立了一些在线变种的反向传播方法,更符合生物学的可行性。
GENESIS、Neuron、NEST和Brian是早期的脑模拟器。Auryn、ANNarchy、GeNN、Brian2GeNN和BSIM等工具主要专注于提高模拟速度。大规模脑模拟器,包括MONET模拟器、BrainCog、BrainPy、V1 Simulator。
截屏2023-12-26 下午5.38.42.png

4.4 基准数据集

(1)模拟数据集
模拟BIC数据集通常基于基于事件的模拟器或事件相机生成,记录LCD显示器上受欢迎的基于帧的数据集的图像。模拟数据集将基于帧的数据集转换为神经形态学域的模拟数据集。其中一部分采用基于事件的模拟器将大规模视频数据集转换为异步时空事件。另一部分使用事件相机将流行的基于帧的数据集记录在液晶显示器上。
(2)真实世界数据集
真实世界数据集通过直接记录来自各种真实物体的神经形态传感器事件数据生成。
(3)从数据集的模态性角度
单模态和多模态。一些数据集仅包含来自单一神经形态传感器(如DVS、DAS或触觉传感器)的事件数据。大多数数据集是基于事件的视觉数据集,也有一些神经形态学数据集涵盖了声音和触觉等其他模态。另外,一些尝试将神经形态学传感器与其他感官模态(如LiDAR、RGB-D摄像头、红外摄像头、IMU和GPS)结合起来,用于具有挑战性场景的智能机器人。

5 实验分析

(1)比较了神经元模型的生物特征和能量消耗
截屏2023-12-26 下午3.27.55.png
具有更高生物可行性的模型会消耗更多能量。LIF神经元模型不仅包含比典型ANN神经元更多的生物特征,而且能量消耗更低。Binary ANN神经元可以被视为最简单的没有时间动态的脉冲神经元,并且其能量消耗最低。fine neuron model在内的复杂神经元模型包含更多的生物可行性特征,但需要更高的计算复杂性和能量消耗。未来的研究可以着重于图中左下角的虚线圈,以提高计算效率和降低能量消耗,或者关注图中右上角的虚线圈,设计具有更多生物特征的模型,以完成传统人工智能难以实现的任务。

6 思考

本文非常系统全面的介绍了类脑的几大研究分支,并详细介绍了每个分布下的技术研究。非常完美优秀的一篇论文。

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

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

相关文章

MySQL安装服务启动失败解决方案

在安装MySQL中,应用配置阶段,显示服务启动失败 查看日志说服务启动失败 我的电脑是win764位 新装的操作系统,之前出现过权限不足的提示,首先定位故障为权限问题。由于MySQL80服务在 计算机管理->服务 里面显示户别为&#xff…

ubuntu20固定串口名称

查看串口的详细信息 udevadm info --name/dev/ttyUSB0结果: P: /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB0/tty/ttyUSB0 N: ttyUSB0 L: 0 S: serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UAR…

机器人持续学习基准LIBERO系列4——robosuite最基本demo

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新 1.robosuite的相关资料 是基于MuJoCo的机器人学习方针环境,提供一套基准环境…

2024.1.8 Day04_SparkCore_homeWork

目录 1. 简述Spark持久化中缓存和checkpoint检查点的区别 2 . 如何使用缓存和检查点? 3 . 代码题 浏览器Nginx案例 先进行数据清洗,做后续需求用 1、需求一:点击最多的前10个网站域名 2、需求二:用户最喜欢点击的页面排序TOP10 3、需求三&#x…

2024年最好用的简历编辑工具,助你腾飞职业生涯!

随着科技的不断发展,求职竞争也愈发激烈。在2024年,如何在众多求职者中脱颖而出成为关键问题。为了帮助大家在职业生涯中取得更好的机会,特别推荐一款在2024年最为出色的简历编辑工具——芊芊简历。 1. 创新的编辑功能 芊芊简历拥有直观易用…

Matlab 使用 DH table 建立的 robot 和实际不符

机器人仿真 想借助 matlab robotics toolbox 来仿真机器人,但是直接输入自己的 DH table 显示出来的 robot 和实际不情况不符。 DH table 建立 robot Build Manipulator Robot Using Kinematic DH Parameters 主要使用 setFixedTransform,DH table 中…

YOLOV7剪枝流程

YOLOV7剪枝流程 1、训练 1)划分数据集进行训练前的准备,按正常的划分流程即可 2)修改train.py文件 第一次处在参数列表里添加剪枝的参数,正常训练时设置为False,剪枝后微调时设置为True parser.add_argument(--pr…

POI:对Excel的基本写操作 整理1

首先导入相关依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><!--xls(03)--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.2</version></depend…

鸿蒙Harmony--状态管理器-@Observed装饰器和@ObjectLink装饰器详解

经历的越多&#xff0c;越喜欢简单的生活&#xff0c;干净的东西&#xff0c;清楚的感觉&#xff0c;有结果的事&#xff0c;和说到做到的人。把圈子变小&#xff0c;把语放缓&#xff0c;把心放宽&#xff0c;用心做好手边的事儿&#xff0c;该有的总会有的! 目录 一&#xff…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)在TcpConnection 中接收并解析Http请求消息

一、在TcpConnection 中多添加和http协议相关的request和response struct TcpConnection {struct EventLoop* evLoop;struct Channel* channel;struct Buffer* readBuf;struct Buffer* writeBuf;char name[32];// http协议struct HttpRequest* request;struct HttpResponse* r…

leecode1143 | 最长公共子序列

给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;也可以不…

第7章 PKI 和密码应用

7.1 非对称密码 第6章的“现代密码学”一节介绍了私钥&#xff08;对称&#xff09;和公钥&#xff08;非对称&#xff09;密码的基本原则。 你曾学过&#xff0c;对称密钥密码系统要求通信双方使用同一个共享秘密密钥&#xff0c;因而形成了安全分发密钥的问题。 你还曾学过…

如何使用科大讯飞星火大模型AI批量生成文章

如何使用科大讯飞的星火大模型AI工具批量生成文章呢&#xff1f; 我们可以使用科大讯飞AI的星火大模型API接口&#xff0c;它支持批量处理和生成文章的AI功能。 但是星火大模型API接口无法直接使用&#xff0c;一般需要技术人员开发对应程序对接才行。为了让不懂技术的普通用…

【微信小程序开发】深入学习小程序开发之功能扩展和优化

前言 随着移动互联网的快速发展&#xff0c;微信小程序作为一种轻量级应用&#xff0c;已经逐渐成为许多企业和个人进行业务推广和服务提供的重要平台本文将详细介绍 微信小程序开发的功能扩展和优化&#xff0c;帮助开发者更好地提升小程序的用户体验和性能。 一、功能扩展 …

数据库系统概念 第七版 中文答案 第3章 SQL介绍

3.1 将以下查询使用SQL语言编写&#xff0c;使用大学数据库模式。 &#xff08;我们建议您实际在数据库上运行这些查询&#xff0c;使用我们在书籍网站db-book.com上提供的示例数据。有关设置数据库和加载示例数据的说明&#xff0c;请参阅上述网站。&#xff09; a. 查找计算机…

蓝桥杯练习题(六)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;六&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

软件分发点(DP)的合理规划

软件分发点&#xff08;Distribution Point, DP&#xff09;是用于托管文件以分发到计算机和移动设的服务器&#xff0c;Jamf Pro可以通过分发点分发以下类型的文件&#xff1a; 软件包 脚本 内部应用程序 内部书籍 Jamf Pro支持两种类型的分发点&#xff0c;您可以使用这些类型…

我用 Laf 开发了一个非常好用的密码管理工具

【KeePass 密码管理】是一款简单、安全简洁的账号密码管理工具&#xff0c;服务端使用 Laf 云开发&#xff0c;支持指纹验证、FaceID&#xff0c;N 重安全保障&#xff0c;可以随时随地记录我的账号和密码。 写这个小程序之前&#xff0c;在国内市场找了很多密码存储类的 App …

汽配企业MES管理系统的特点与实践

随着汽车工业的飞速发展&#xff0c;汽车零部件制造企业面临着日益复杂的生产环境和多样化的市场需求。为了应对这些挑战&#xff0c;许多汽配企业开始引入MES管理系统解决方案&#xff0c;以提高生产效率、优化资源配置、提升产品质量。本文将重点探讨汽配企业MES管理系统的特…

阿尔泰推出19“8槽4U上架式CPCI机箱 支持客户定制化机箱需求

阿尔泰科技发展有限公司是北京阿尔泰科技的子公司&#xff0c;公司于2010年正式成立&#xff0c;集全国技术支持与服务&#xff0c;销售&#xff0c;结构设计&#xff0c;项目支持等一批专业从事工控行业的工程师屹立在天府之国。公司涵盖数据采集&#xff0c;无线传输&#xf…