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

探索未来:集成存储器计算(IMC)与深度神经网络(DNN)的机遇与挑战

开篇部分:人工智能、深度神经网络与内存计算的交汇

在当今数字化时代,人工智能(AI)已经成为科技领域的一股强大力量,而深度神经网络(DNN)则是AI的核心引擎之一。DNN是一种模仿人类神经系统运作方式的计算模型,通过层层堆叠的神经元网络来实现复杂的模式识别和数据处理任务。从图像识别、语音识别到自然语言处理,DNN已经在各个领域展现了惊人的能力。然而,随着DNN模型的不断演进和复杂化,对计算资源的需求也与日俱增。

传统的计算机体系结构在处理DNN的推理和训练任务时面临着诸多挑战。数据在内存和处理单元之间的频繁传输导致了巨大的能耗和延迟,限制了计算效率和性能的进一步提升。为了应对这些挑战,内存计算(In-Memory Computing,IMC)技术应运而生。

IMC是一种革命性的计算范式,其核心思想是在内存单元内直接执行计算操作,从而将数据和计算更紧密地集成在一起,最大程度地减少数据传输和能源开销。IMC的出现为加速DNN推理和训练任务提供了全新的可能性,吸引了众多研究者和工程师的关注和投入。在接下来的篇章中,我们将深入探讨IMC技术在DNN加速领域的最新进展和潜在应用,以及面临的挑战和未来发展方向。

第二部分:IMC与传统计算机架构的优势

在探讨内存计算(IMC)技术与传统计算机架构的优势时,我们不仅可以从性能、能效和可扩展性等方面进行比较,还可以深入了解IMC在各个领域的实际应用和潜在影响。

1. 性能优势

IMC技术通过将计算操作直接放置在内存中,实现了数据和计算的紧密集成。这种紧密的结合消除了传统计算机架构中由于数据传输造成的延迟和瓶颈。相比之下,传统计算机架构需要将数据从内存传输到处理单元进行计算,然后再将结果写回内存,这一过程可能会消耗大量时间和能源。而IMC在内存中执行计算操作,大大减少了这种传输过程,从而显著提高了系统的性能和响应速度。

2. 能效优势

IMC技术的能效优势主要体现在两个方面:能源消耗和热管理。首先,由于IMC减少了数据传输过程中的能源消耗,使得整个系统的能耗大大降低。其次,IMC将计算操作直接放置在内存中,减少了处理器的工作负载,降低了系统的发热量,从而减少了对冷却系统的需求,进一步提高了能效。

3. 可扩展性优势

IMC技术具有良好的可扩展性,能够满足不断增长的计算需求。传统计算机架构在面对大规模数据处理和计算任务时往往面临着硬件资源不足和性能瓶颈的问题。而IMC可以通过增加内存单元和并行计算单元来实现水平扩展,从而满足不断增长的计算需求,保持系统的高性能和可靠性。

实际应用和潜在影响

IMC技术在各个领域都具有广泛的应用前景。在人工智能领域,IMC可以加速深度学习模型的推理和训练任务,提高模型的性能和效率。在大数据分析和处理领域,IMC可以加速数据处理和计算任务,提高系统的响应速度和效率。此外,IMC还可以应用于物联网、生物信息学、医学影像处理等领域,为各种应用场景提供高效、可靠的计算解决方案。

总的来说,IMC技术具有明显的性能、能效和可扩展性优势,可以为各种应用场景提供高效、可靠的计算解决方案,对计算机体系结构的发展和演进具有重要的意义和影响。在未来,随着IMC技术的不断成熟和完善,相信其在各个领域的应用前景将更加广阔,为人类社会的发展和进步带来新的机遇和挑战。

第三部分:计算存储器技术介绍

内存计算(IMC)的主要优势在于减少或抑制数据移动,从而提高了能效。减少数据移动的方法有多种,其中主要包括近内存计算、基于静态随机存取存储器(SRAM)的内存计算以及利用新兴的非易失性存储器(NVM)技术进行内存计算。下面将详细介绍这些技术及其优势。

1. 近内存计算

近内存计算是一种将非易失性内存直接嵌入到处理器芯片上的技术,以增加带宽并减少数据传输。这种方法使得大量模型参数,如突触权重和激活,可以直接存储在内存中,从而避免了数据传输的延迟和能耗。近内存计算可以大幅提高系统的性能和能效,是一种非常有效的内存计算技术。

2. 基于SRAM的内存计算

基于SRAM的内存计算是一种直接在SRAM内存阵列中执行计算操作的技术。通过将计算逻辑直接嵌入到内存中,可以实现数据和计算的紧密集成,从而减少了数据传输过程中的能耗和延迟。这种技术虽然在易失性和密度方面存在一些限制,但在某些应用场景下仍然具有重要意义。

3. 利用新兴的非易失性存储器技术进行内存计算

利用新兴的非易失性存储器(NVM)技术进行内存计算是一种最新的技术趋势。这些NVM设备具有非易失性存储特性,可以在电源关闭后保持突触权重,从而避免了数据在计算过程中的丢失。同时,这些设备通常具有较高的集成度和密度,可以实现更高效的内存计算操作。主要的NVM技术包括:

  • 电阻随机存取存储器(RRAM)
  • 相变存储器(PCM)
  • 铁电随机存取存储器(FeRAM)
  • 铁电场效应晶体管(FeFET)
  • 自旋转移力矩磁性随机存取存储器(STT-MRAM)
  • 自旋轨道力矩磁性随机存取存储器(SOT-MRAM)
  • 电化学随机存取存储器(ECRAM)
  • 忆晶体管(Memtransistor)
    在这里插入图片描述
    当涉及到各种NVM(非易失性存储器)技术时,每种技术都有其独特的优势和特点。下面将详细介绍几种主要的NVM技术以及它们的优势:
1. 电阻随机存取存储器(RRAM)
  • 非易失性: RRAM的突变器件状态可以在断电后保持,这使得它们非常适合于存储长期数据。

  • 可扩展性: RRAM器件具有较小的尺寸,并且可以在垂直和水平方向上进行扩展,使得它们可以实现高密度的存储。

  • 高速度: 由于其简单的电阻变化原理,RRAM设备具有快速的读写速度,使其在应用中具有较高的性能。

2. 相变存储器(PCM)
  • 多态性: PCM器件可以在不同的晶体和非晶态之间切换,这使得它们能够存储多个比特,从而提高了存储密度。

  • 长寿命: 相变材料通常具有较长的使用寿命和较高的循环次数,使得PCM器件具有可靠性和耐久性。

  • 低功耗: 相变存储器的读写操作通常具有较低的功耗,这使得它们非常适合于移动设备和低功耗应用。

3. 铁电随机存取存储器(FeRAM)
  • 快速写入: FeRAM器件具有快速的写入速度,且写入操作不会对器件产生损伤,这使得其在实时数据记录和缓存应用中具有优势。

  • 长寿命: 铁电材料具有很长的循环寿命,因此FeRAM器件可以进行大量的写入/擦除操作而不会导致性能下降。

  • 低功耗: 与其他NVM技术相比,FeRAM的读写操作通常具有较低的功耗,使其成为节能应用的理想选择。

4. 自旋转移力矩磁性随机存取存储器(STT-MRAM)
  • 高速度: STT-MRAM器件具有快速的读写速度,这使得其在高性能计算和存储系统中具有重要作用。

  • 长寿命: 自旋转移力矩效应可以实现非常高的循环次数,因此STT-MRAM器件具有很长的使用寿命。

  • 可扩展性: STT-MRAM技术可以在不同尺寸和密度上进行扩展,从嵌入式系统到大型数据中心存储系统都可以使用。

5. 自旋轨道力矩磁性随机存取存储器(SOT-MRAM)
  • 低功耗: 由于自旋轨道耦合效应,SOT-MRAM器件具有较低的功耗,这使得其在移动设备和节能应用中具有优势。

  • 高速度: SOT-MRAM器件具有快速的读写速度,可以满足高性能计算和数据处理的需求。

  • 稳定性: 自旋轨道耦合效应可以实现稳定的存储状态,且器件具有较高的可靠性和长寿命。

6. 电化学随机存取存储器(ECRAM)
  • 低功耗: ECRAM器件通常具有较低的功耗,因为其操作是基于电化学反应而不是电子流动。

  • 高循环次数: 由于电化学反应的性质,ECRAM器件通常具有较高的循环次数和长寿命。

  • 稳定性: 电化学存储器的状态可以在断电后保持,这使得其在需要长期存储数据的应用中具有优势。

7. 忆晶体管
  • 高速度: 忆晶体管器件具有快速的写入速度和读取速度,使得其在需要快速存储和检索数据的应用中非常有用。

  • 多态性: 忆晶体管可以存储多种状态,并且可以实现多比特存储,从而提高了存储密度和容量。

  • 可编程性: 忆晶体管的状态可以通过外部控制进行编程,这使得其在灵活性和可定制性方面具有优势。

比较分析

在比较各种NVM技术时,可以根据其性能指标和特点进行评估:

  • 非易失性: 所有的NVM技术都具有非易失性,但在具体应用中可能有不同的要求,如循环寿命、耐久性等。

  • 速度: 不同的NVM技术具有不同的读写速度,这取决于其工作原理和物理结构。

  • 密度: 各种NVM技术在存储密度方面也存在差异,一些技术可能具有更高的存储密度,从而可以实现更大的存储容量。

  • 功耗: NVM技术的功耗也是一个重要考虑因素,特别是在移动设备和低功耗应用中。

  • 循环寿命: 对于需要频繁写入和擦除操作的应用,循环寿命是一个关键的性能指标,不同的NVM技术具有不同的循环寿命。

在这里插入图片描述

不同半导体存储器技术的指示性性能和特点

在这里插入图片描述

各种新兴存储器演示器的性能和特点

  • 图 a 显示了速度(以读取时间的倒数表示)和密度(以单元面积的倒数表示)的相关图。文献中的数据与基于 CMOS 的传统存储器技术(如 SRAM、DRAM 和 NAND 闪存)的典型范围进行了比较。新兴 NVM 的性能/成本通常介于 CMOS 存储器之间,速度接近 DRAM,而密度一般仍介于 SRAM 和 DRAM 之间。
  • 图 b 显示了各种 NVM 演示器的阵列大小与技术节点的函数关系。容量范围从嵌入式存储器(1-100 MB)到独立存储器(1-100 GB)。请注意,技术节点越小,阵列容量不一定越大,这是由于技术的成熟度不同造成的。
  • 图 c 显示了一些 NVM 演示器的存储器容量与年份的函数关系,凸显了各种存储器技术的不断发展。

综上所述,选择最合适的NVM技术取决于具体的应用需求,需要综合考虑其非易失性、速度、密度、功耗和循环寿命等方面的特点,以及成本和制造工艺等因素。

第四部分:内存矩阵 - 矢量乘法

内存矩阵 - 矢量乘法的基本原理

内存矩阵-矢量乘法(IMC MVM)是一种旨在加速计算的技术,特别是在处理大规模矩阵乘法时。它的核心思想是利用存储器的特性,直接在存储器内执行计算,而无需将数据移动到处理器或其他地方进行处理。

首先,让我们理解一下传统的矩阵乘法操作。假设我们有一个矩阵A(m × n)和一个向量x(n × 1),我们需要将它们相乘以产生一个新的向量y(m × 1)。在传统的计算中,我们会将矩阵A和向量x的数据加载到处理器的内存中,然后使用处理器进行计算,并最终将结果保存到内存中。

而IMC MVM技术则将计算直接嵌入到存储器中,这使得计算可以在存储器级别上并行执行,大大提高了计算速度和效率。具体来说,IMC MVM利用了交叉点存储器阵列的特性。在这种存储器中,每个交叉点上都有一个可编程电阻元件,通过在行和列上施加电压,可以控制电流流过每个交叉点的大小。根据欧姆定律和基尔霍夫电流定律,存储器阵列可以直接执行矩阵-矢量乘法运算,而无需额外的处理器或计算单元。

具体地,通过在列上施加一个电压向量,存储器阵列中的每个交叉点都会产生一个电流,这些电流经过行线并最终被收集起来。这样,输出电流向量就是矩阵A与向量x的乘积的结果。由于存储器阵列具有高度的并行性,计算可以在一个步骤内完成,而不受矩阵大小的限制,因此时间复杂度为O(1),效率非常高。

在这里插入图片描述

此外,IMC MVM技术还具有灵活性和可扩展性。它可以根据不同的应用需求和存储器器件进行各种实现。例如,可以通过在电阻元件上串联一个接入器件来解决编程问题,或者使用一系列晶体管和电阻器来实现更精细的电流控制。因此,IMC MVM技术可以适用于各种不同的计算任务,并在提高计算速度和效率方面发挥重要作用。

IMC 的应用场景

IMC的应用场景非常广泛,包括图像处理、线性代数运算、组合优化、贝叶斯网络等领域。其中,最受欢迎的应用之一是深度神经网络(DNN)推理和训练。在DNN推理中,IMC用于加速MVM操作,而在训练中,则需要原位权重更新方案,以实现迭代梯度下降算法。此外,IMC还可以用于图像处理、特征提取、线性回归等任务,以及组合优化和贝叶斯网络等算法。

第五部分:深度神经网络推理加速:三种内存加速方法

在人工智能技术的迅速发展中,深度神经网络(DNN)扮演着至关重要的角色。然而,DNN在进行推理时通常需要大量的计算资源,这在实际应用中可能会成为一个瓶颈。为了解决这一问题,研究人员们提出了各种各样的加速方法,其中一种方法是利用内存加速器来加快推理过程。本文将介绍三种不同类型的内存加速器,并对它们的工作原理进行解释。

  1. 全数字电路:这种加速器利用存储逻辑门执行乘法运算,然后使用计数器进行顺序累加。它的优点是对各种非理想情况具有很强的适应能力,但是它的计算并行性受到了限制。

  2. 数模混合电路:这种加速器在数字域中使用XNOR门执行乘法运算,在模拟域中通过Kirchhoff电流定律(KCL)执行累加。虽然这种方法利用了并行性,但是模拟累加需要更复杂的外围电路,并且对寄生效应更为敏感。

  3. 全模拟电路:这种加速器利用电阻式存储元件执行乘法,并通过电流或电荷累积进行累加。全模拟加速器可以充分发挥并行性,但是需要精确的读出和转换电路,并且受到器件和电路层面寄生效应的影响。

这三种不同类型的加速器各有优缺点,适合不同类型的应用场景。选择适合特定应用的加速器取决于对性能、功耗和成本的需求,以及对非理想情况的鲁棒性要求。通过不断地研究和改进这些方法,我们可以更有效地加速DNN的推理过程,从而推动人工智能技术的发展。

收尾部分:IMC 电路的未来展望

集成存储器计算(IMC) 在电路密度、速度、能效和可扩展性方面具有显著优势。在机器学习和深度学习领域,已经发现了一些解决方案和应用,但同时也面临着各种技术和设计挑战。为了进一步推动IMC的发展和产业化,需要从两个主要方向来解决这些挑战。

1. 器件技术和材料研究

  • 精确、稳定、低电流的存储器件:这些存储器件的采用将使IMC受益匪浅,可以轻松集成到大规模光刻工艺的后端工艺层(BEOL),同时还可以在多个导电层面进行编程。
  • 材料和器件物理的研究:研究可以揭示波动和漂移等非理想现象背后的机制,从而开发出免受寄生效应影响的新型存储器件。
  • 存储器单元配置的工程设计:如1S1R或1T1R结构,可大幅降低工作电流,从而降低能耗、减少IR下降,并提高IMC系统的面积效率。

2. 计算架构研究及与工作负载的相互作用

  • 最大限度提高计算并行性:以防止读出链的多路复用,需要研究并实现高度并行的计算架构。
  • 精确的协同设计:通过对硬件和神经网络进行精确的协同设计,可以最大限度地提高系统性能。
  • 定制的神经网络:根据应用需求对神经网络进行定制,以采用适合IMC加速的功能,如低级量化或硬件感知训练程序。
  • 电子设计自动化(EDA)工具链:需要一个完善的EDA工具链,以弥合终端用户与硬件系统之间的差距,包括特定于应用的高抽象层设计工具和专用编译器,类似于现有的基于CPU和GPU的计算系统。

综上所述,集成存储器计算(IMC)的发展不仅需要在器件技术和材料研究方面取得进展,还需要研究和实现高效的计算架构,并建立完善的电子设计自动化工具链,以推动IMC在机器学习和深度学习领域的广泛应用和产业化。

结尾

内存计算(IMC)技术与传统计算机架构相比具有显著的性能、能效和可扩展性优势,为各种应用场景提供了高效、可靠的计算解决方案。从近内存计算到基于SRAM的内存计算,再到利用新兴的非易失性存储器(NVM)技术进行内存计算,不同的技术都在不同程度上改善了数据处理和计算任务的效率和能效。随着各种NVM技术的不断发展和成熟,我们有望看到更多高性能、低功耗的存储器设备应用于各种领域,推动计算机体系结构的进一步发展和演进。

在未来,IMC技术将继续发挥重要作用,为人工智能、大数据分析、物联网等领域的应用提供更加高效、可靠的计算支持。同时,我们也应该意识到,IMC技术虽然带来了诸多优势,但也面临着诸多挑战,如制造工艺的成本、技术的稳定性等。因此,我们需要不断加强研发和创新,进一步完善IMC技术,以应对日益增长的计算需求,推动科技进步,为人类社会的发展和进步做出更大的贡献。

引用文献

  • In-Memory Computing for Machine Learning and Deep Learning
  • In-Memory Computing Synthesis and Optimization
  • In-Memory Computing Architectures forBig Data and Machine Learning Applications

相关文章:

探索未来:集成存储器计算(IMC)与深度神经网络(DNN)的机遇与挑战

开篇部分:人工智能、深度神经网络与内存计算的交汇 在当今数字化时代,人工智能(AI)已经成为科技领域的一股强大力量,而深度神经网络(DNN)则是AI的核心引擎之一。DNN是一种模仿人类神经系统运作…...

[C/C++] -- CMake使用

CMake(Cross-platform Make)是一个开源的跨平台构建工具,用于自动生成用于不同操作系统和编译器的构建脚本。它可以简化项目的构建过程,使得开发人员能够更方便地管理代码、依赖项和构建设置。 CMake 使用一个名为 CMakeLists.tx…...

笔记本选购配置参数详解

笔记本电脑的选购是一个技术活,涉及到众多的配置参数。本文将为您详细解析笔记本电脑的主要配置参数,帮助您在选购时做出明智的决策。 1. 处理器(CPU) 处理器是笔记本电脑的核心组件,负责执行计算任务…...

临睡之际的生死思索与生命哲学的启示

在人类生存体验中,有一种独特而深邃的感受——当人们准备进入梦乡时,会担忧第二天醒来是否还能感知到生命的律动。这种“入睡即未知”的心理状态,既是生命无常的深刻体现,也是对个体生命价值、生活态度及人生哲学的一种深度拷问。…...

QT学习(五)C++函数重载

一、 函数重载 在同一个作用域内,可以声明几个功能类似的同名函数, 这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来 重载函数。 下面的实例中,同名函数 print() 被用…...

微服务OAuth 2.1扩展额外信息到JWT并解析(Spring Security 6)

文章目录 一、简介二、重写UserDetailsService三、Controller解析JWT获取用户信息四、后记 一、简介 VersionJava17SpringCloud2023.0.0SpringBoot3.2.1Spring Authorization Server1.2.1Spring Security6.2.1mysql8.2.0 Spring Authorization Server 使用JWT时,前…...

Python@setter用法介绍

Pythonsetter是Python编程语言中的一个关键属性,它简化了Python开发者的编程过程,提高了编程效率。 一、Pythonsetter是什么 Pythonsetter是Python语言中的一个属性,它允许程序员设置Python中的类成员变量。在Python中,属性&…...

格子表单GRID-FORM | 文档网站搭建(VitePress)与部署(Github Pages)

格子表单/GRID-FORM已在Github 开源,如能帮到您麻烦给个星🤝 GRID-FORM 系列文章 基于 VUE3 可视化低代码表单设计器嵌套表单与自定义脚本交互文档网站搭建(VitePress)与部署(Github Pages) 效果预览 格…...

mac无法往硬盘里存东西 Mac硬盘读不出来怎么办 Mac硬盘格式 硬盘检测工具

mac有时候会出现一些问题,比如无法往硬盘里存东西,或者无法往硬盘上拷贝文件。这些问题会给用户带来很大的困扰,影响正常的工作和学习。那么,mac无法往硬盘里存东西,mac无法往硬盘上拷贝怎么办呢?软妹子将为…...

DataX源码分析 reader

系列文章目录 一、DataX详解和架构介绍 二、DataX源码分析 JobContainer 三、DataX源码分析 TaskGroupContainer 四、DataX源码分析 TaskExecutor 五、DataX源码分析 reader 六、DataX源码分析 writer 七、DataX源码分析 Channel 文章目录 系列文章目录前言Reader组件如何处理…...

openssl3.2 - exp - RAND_bytes_ex

文章目录 openssl3.2 - exp - RAND_bytes_ex概述笔记END openssl3.2 - exp - RAND_bytes_ex 概述 生成随机数时, 要检查返回值是否成功, 不能认为一定是成功的(官方文档上有说明). 生成随机数的API, 和库上下文有关系, 使用RAND_bytes_ex()比RAND_bytes()好些. 笔记 /*! * …...

Oracle中怎么设置时区和系统时间

在Oracle数据库中,设置时区和系统时间可以通过多种方法实现。下面是一些常见的方法: 1. 设置数据库的时区 Oracle数据库允许你为每个会话或整个数据库设置时区。 a. 为整个数据库设置时区 你可以使用ALTER DATABASE语句为整个数据库设置时区。例如&a…...

常见的物联网操作系统介绍

物联网(Internet of Things,IoT)是指将各种物理设备、车辆、家用电器、工业设备等通过网络连接起来,实现数据交换和通信的技术。物联网操作系统是管理这些设备并使其能够相互通信的软件平台。以下是一些常见的物联网操作系统&…...

二级C语言笔试10

(总分101,考试时间90分钟) 一、选择题 1. 设有如下关系表: A) TR∩S B) TR∪S C) TRS D) TR/S 2. 在一棵二叉树中,叶子结点共有30个,度为1的结点共有40个,则该二叉树中的总结点数共有( )个。 A) 89 …...

【WebSocket】微信小程序原生组件使用SocketTask 调用星火认知大模型

直接上代码 微信开发者工具-调试器-终端-新建终端 进行依赖安装 npm install base-64 npm install crypto-js 然后顶部工具栏依次点击 工具-构建npm // index.js const defaultAvatarUrl https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQ…...

[1-docker-01]centos环境安装docker

官方参考文档 可以在官方docker桌面版本指导文档里找到适合自己的电脑平台进行参考,或者你是老司机的话直接自己上车。 如果不需要桌面版,也可以在官方docker engine版本指导文档里找到适合自己的平台进行参考,同样,老司机可以自…...

深度学习基础之《深度学习介绍》

一、深度学习与机器学习的区别 1、特征提取方面 机器学习:人工特征提取 分类算法 深度学习:没有人工特征提取,直接将特征值传进去 (1)机器学习的特征工程步骤是要靠手工完成的,而且需要大量领域专业知识…...

4核8g服务器能支持多少人访问?2024新版测评

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线?通用型-4核8G-180G-2000G,2000GB月流量,系统盘为180GB SSD盘,12M公网带宽,下载速度峰值为1536KB/s,即1.5M/秒,假设网站内页平均大小为60KB…...

Linux中pipe管道操作

管道的读写操作: 读操作: ​​​有数据:read正常读,返回读出的字节数无数据:1 写段全部关闭:read解除阻塞,返回0,相当于文件读到了尾部 2 写段没有全部关闭&#xf…...

中年中产程序员从西安出发到海南三亚低成本吃喝万里行:西安-南宁-湛江-雷州-徐闻-博鳌-陵水-三亚-重庆-西安(2.游玩过程)

文章大纲 出发时间:Day1-1月25日星期四,西安飞南宁路途中:Day2-1月26日星期五,南宁-湛江-住雷州(曾经支教过的地方)【晚上买徐闻到海安新港】路途中:Day3-1月27日星期六,雷州-徐闻渡…...

day38 面向对象编程、构造函数等(纯概念)

目录 深入对象构造函数实例成员静态成员内置构造函数ObjectArray包装类型StringNumber 深入对象 了解面向对象的基础概念,能够利用构造函数创建对象。 构造函数 构造函数是专门用于创建对象的函数,如果一个函数使用 new 关键字调用,那么这…...

nginx用域名http://xx.com/aaa/代理一个网页http://ff.com但是请求资源时发生404

哎,还得是chatgpt,难道就没有人有这种使用场景吗?没查到一个配置是有效的。 我: 我配置了nginx反向代理,用域名http://xx.com/aaa/代理一个网页http://ff.com, 但是请求资源时发生404,如何解决&…...

NLP_词的向量表示Word2Vec 和 Embedding

文章目录 词向量Word2Vec:CBOW模型和Skip-Gram模型通过nn.Embedding来实现词嵌入Word2Vec小结 词向量 下面这张图就形象地呈现了词向量的内涵:把词转化为向量,从而捕捉词与词之间的语义和句法关系,使得具有相似含义或相关性的词语在向量空间…...

python:xml.etree 生成思维导图 Freemind文件

请参阅:java : pdfbox 读取 PDF文件内书签 或者 python:从PDF中提取目录 请注意:书的目录.txt 编码:UTF-8,推荐用 Notepad 转换编码。 xml 是 python 标准库,在 D:\Python39\Lib\xml\etree python 用 xm…...

Solidworks:从2D走向3D

Sokidworks 的强大之处在于三维实体建模,这个形状看似复杂,实际上只需要拉伸一次,再做一次减法拉伸就行了。第一次做三维模型,费了不少时间才搞明白。 接下来做一个稍微复杂一点的模型,和上面这个操作差不多&#xff0…...

【开源】JAVA+Vue.js实现高校学院网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…...

题解19-24

48. 旋转图像 - 力扣(LeetCode) 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在** 原地** 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1…...

基于图像掩膜和深度学习的花生豆分拣(附源码)

目录 项目介绍 图像分类网络构建 处理花生豆图片完成预测 项目介绍 这是一个使用图像掩膜技术和深度学习技术实现的一个花生豆分拣系统 我们有大量的花生豆图片,并以及打好了标签,可以看一下目录结构和几张具体的图片 同时我们也有几张大的图片&…...

【网络】:序列化和反序列化

序列化和反序列化 一.json库 二.简单使用json库 前面已经讲过TCP和UDP,也写过代码能够进行双方的通信了,那么有没有可能这种通信是不安全的呢?如果直接通信,可能会被底层捕捉;可能由于网络问题,一方只接收到…...

AJ-Report 【开源的一个BI平台】

AJ-Report是全开源的一个BI平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。     多数据源支持,内置mysql、elasticsearch、kudu驱动,支持自定义数据集省去数据接口开发,目前已支持30…...

Matplotlib核心:掌握Figure与Axes

详细介绍Figure和Axes(基于Matplotlib) 🌵文章目录🌵 🌳引言🌳🌳 一、Figure(图形)🌳🍁1. 创建Figure🍁🍁2. 添加Axes&am…...

问题:A注册会计师必须在期中实施实质性程序的情形是()。 #学习方法#其他

问题:A注册会计师必须在期中实施实质性程序的情形是()。 A.甲公司整体控制环境不佳 B.将期中实质性程序所获证据与期末数据进行比较 C.评估的认定层次重大错报风险很高 D.没有把握通过在期中…...

C#系列-C#EF框架返回单行记录(24)

在C#中&#xff0c;使用Entity Framework (EF)框架时&#xff0c;如果你想要执行一个查询并返回单行记录&#xff0c;你可以使用SingleOrDefault、FirstOrDefault、Single或First方法。这些方法适用于DbSet<T>对象&#xff0c;它们可以执行查询并返回单个实体或默认值&am…...

【PyTorch】张量(Tensor)的生成

PyTorch深度学习总结 第一章 Pytorch中张量(Tensor)的生成 文章目录 PyTorch深度学习总结一、什么是PyTorch&#xff1f;二、张量(Tensor)1、张量的数据类型2、张量生成和信息获取 总结 一、什么是PyTorch&#xff1f; PyTorch是一个开源的深度学习框架&#xff0c;基于Python…...

【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-Viterbi译码原理

目录 一、引言 二、Viterbi译码的基本原理 2.1 卷积码与网格图 2.2 Viterbi算法的核心思想 2.3 路径度量与状态转移 三、Viterbi译码算法工作原理详解 3.1 算法流程 3.2 关键步骤 3.3 译码算法举例 3.4 性能特点 四、Viterbi译码的应用场景 4.1 移动通信系统 4.2 卫…...

矩阵在计算机图像处理中的应用

矩阵在计算机图像处理中是非常核心的概念&#xff0c;因为它们为表示和操作图像数据提供了一种非常方便和强大的方式。以下是矩阵在计算机图像处理中的一些关键作用&#xff1a; 图像表示&#xff1a;在计算机中&#xff0c;图像通常被表示为像素矩阵&#xff0c;也就是二维数组…...

Java实现教学资源共享平台 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…...

Spring Boot(六十五):使用 ant.jar 执行 SQL 脚本文件

ant用处,主要用在编译java文件,打包,部署。打包:jar,war,ear包等。ant在项目中有很重要的作用。今天我们讲解它的另一个作用:执行 SQL 脚本文件。 1 引入依赖 <dependency><groupId>org.apache.ant</groupId><artifactId>ant</artifactId&g…...

161基于matlab的快速谱峭度方法

基于matlab的快速谱峭度方法&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;对滤波好信号进行包络谱分析。输出快速谱峭度及包络谱结果。程序已调通&#xff0c;可直接运行。 161 信号处理 快速谱峭度 包络谱分析 (xiaohongshu.com)...

CTFshow-WEB入门-信息搜集

web1&#xff08;查看注释1&#xff09; wp 右键查看源代码即可找到flag web2&#xff08;查看注释2&#xff09; wp 【CtrlU】快捷键查看源代码即可找到flag web3&#xff08;抓包与重发包&#xff09; wp 抓包后重新发包&#xff0c;在响应包中找到flag web4&#xff08;robo…...

django密码管理器(创建项目)

目录 创建项目 安装django 创建项目(django-admin) 创建管理员用户 创建数据库 创建项目 新建一个项目文件夹&#xff0c;如"密码管理器" 安装django 要先安装pip,pip安装地址:pypi.org、pypi.python.org、cheeseshop.python.org pip install django 创建项…...

Centos7之Oracle12c安装与远程连接配置

Centos7之Oracle12c安装与远程连接配置 文章目录 Centos7之Oracle12c安装与远程连接配置1.Oracle官网2. Centos7中安装Oracle12c(12.2.0.1.0)2.1 Introduction (介绍)2.2 Prerequisites(先决条件)2.3 Installation Steps(安装步骤)2.4 Oracle Installer Screens(Oracle安装程序…...

CVE-2022-25578 漏洞复现

CVE-2022-25578 路由/admin/admin.php是后台&#xff0c;登录账号和密码默认是admin、tao&#xff0c;选择文件管理。 是否还记得文件上传中的.htaccess配置文件绕过发&#xff0c;在这个文件中加入一句AddType application/x-httpd-php .jpg&#xff0c;将所有jpg文件当作php…...

Ubuntu22.04安装黑屏(进入U盘安装引导时 和 安装完成后)

一&#xff1a;进入U盘安转引导时黑屏 问题描述&#xff1a;选择’try or install ubuntu’&#xff0c;开始安装&#xff0c;出现黑屏。 解决方法&#xff1a;&#xff08;可行&#xff09; 安装时&#xff0c;先选择" try or install ubuntu", 此时不要按enter&a…...

一、DataX简介

DataX简介 一、什么是DataX二、DataX设计三、支持的数据源四、框架设计五、运行原理六、DataX和Sqoop对比 一、什么是DataX DataX是阿里巴巴开源的一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库&#xff08;MySQL、Oracle等&#xff09;、HDFS、Hive、OD…...

直播app开发,技术驱动的实时互动新纪元

随着互联网技术的快速发展&#xff0c;直播已成为我们日常生活的重要组成部分。从娱乐、教育到商业活动&#xff0c;直播的广泛应用正在改变着我们的生活和工作方式。在这一变革中&#xff0c;直播开发扮演着至关重要的角色。本文将探讨直播开发的核心理念、技术挑战以及未来的…...

Apache POI的介绍以及使用示例

Apache POI 是一套开源的 Java 库&#xff0c;用于读取和写入 Microsoft Office 文档格式&#xff0c;如 Excel、Word 和 PowerPoint。Spring Boot 是一个流行的 Java 应用程序框架&#xff0c;用于简化 Spring 应用的开发和部署。将 Apache POI 与 Spring Boot 结合使用&#…...

npm config set registry https://registry.npm.taobao.org 这个设置了默认的镜像源之后如何恢复默认的镜像源

要恢复npm默认的镜像源&#xff0c;你可以使用以下命令将registry设置回npm的官方源&#xff1a; npm config set registry https://registry.npmjs.org/这个命令会修改你的全局npm配置&#xff0c;将包的下载源改回npm官方的源。这样做之后&#xff0c;任何后续的npm install…...

算法沉淀——位运算(leetcode真题剖析)

算法沉淀——位运算 常用位运算总结1.基础位运算2.确定一个数中第x位是0还是13.将一个数的第x位改成14.将一个数的第x位改成05.位图6.提取一个数最右边的17.删掉一个数最右边的18.异或运算9.基础例题 力扣题目讲解01.面试题 01.01. 判定字符是否唯一02.丢失的数字03.两整数之和…...

React18原理: 再聊Fiber架构下的时间分片

时间分片 react的任务可以被打断&#xff0c;其实就是基于时间分片的人眼最高能识别的帧数不超过30帧&#xff0c;电影的帧数差不多是在24浏览器的帧率一般来说是60帧&#xff0c;也就是每秒60个画面, 平均一个画面大概是16.5毫秒左右浏览器正常的工作流程是运算渲染&#xff…...