TinyML:下一轮人工智能革命

来源:AI前线

作者:Matthew Stewart

译者:盖磊

策划:陈思

人工智能的一个趋势是正快速从“云端”走向“边缘”。TinyML 是在海量的物联网设备端微控制器上实现的人工智能,有望在未来几年内,成为人工智能在工业领域的重要新应用。边缘设备往往计算资源和电量受限,对功耗极为敏感。在此类设备上实现人工智能模型,面临着新的挑战,也提出了新的应用。本文是 TinyML 系列文章中的第一篇,介绍了 TinyML 概念、技术及未来潜力。

由 NASA 引领的小型化风潮已经席卷了整个消费电子产品产业。现在,一个领针中即可保存全部贝多芬作品,并可使用耳机聆听。———天体物理学家、科学评论员 Neil deGrasse Tyson

……超低功耗嵌入式设备的普及,以及用于微控制器的 TensorFlow Lite 等嵌入式机器学习框架的推出,意味着人工智能驱动的 IoT 设备将得到大规模普及。———哈佛大学副教授 Vijay Janapa Reddi

图 1 嵌入设备上的 TinyML 概览图

模型并非越大越好。

本文是 TinyML 系列文章中的第一篇,目的是向读者介绍 TinyML 概念及其未来潜力。本系列的后续文章中,将深入介绍一些特定的应用、具体实现和教程。

引  言

过去的十年中,由于处理器速度的提高和大数据的出现,我们见证了机器学习算法的规模呈指数级增长。最初,模型的规模并不大,在本地计算机中运行,使用 CPU 的一或多个内核。

此后不久,GPU 计算使人们可以处理更大规模的数据集,并且通过基于云的服务,例如 Google Colaboratory 等 SaaS 平台,Amazon EC2 Instances 等 IaaS,GPU 技术变得更易于获取。与此同时,算法仍可在单机上运行。

最近,专用的 ASIC 和 TPU 已可提供大约 8 个 GPU 的处理能力。这些设备的发展,增强了将学习算法分布到多个系统中的能力,满足了规模不断增大的模型需求。

2020 年 5 月发布的 GPT-3 算法,推动模型的规模达到登峰造极的水平。在 GPT-3 的网络架构中,包含了数量惊人的 1750 亿个神经元,是人脑中约 850 亿个神经元的两倍多,也是 Turing-NLG 神经元数量的 10 倍以上。Turing-NLG 发布于 2020 年 2 月,是有史以来的第二大神经网络,其中包含约 175 亿个参数。有人估计,GPT-3 模型的训练成本约为 1000 万美元,使用约 3GWh 的电力,是三个核电站一小时的输出。

尽管 GPT-3 和 Turing-NLG 的成就值得称赞,但它们自然也引发了一些业内人士对人工智能行业日益增长碳足迹的批评。另一方面,它们也激发了人工智能领域对更为节能计算的兴趣。过去数年中,更高效的算法、数据表示和计算等理念,一直是机器学习微型化(TinyML)这一看似毫无关联领域的关注点。

TinyML 是机器学习和嵌入式 IoT 设备的交叉领域,是一门新兴的工程学科,具有革新许多行业的潜力。

TinyML 的主要受益者,是边缘计算和节能计算领域。TinyML 源自物联网 IoT 的概念。物联网的传统做法,是将数据从本地设备发送到云端处理。一些人对这一方式在隐私、延迟、存储和能源效率等方面存在疑虑。

  • 能源效率。无论通过有线还是无线方式,数据传输都非常耗能,比使用乘积累加运算单元(multiply-accumulate units,MAU)的本机计算高出约一个数量级。最节能的做法,是研发具备本地数据处理能力的物联网系统。相对于“以计算为中心”的云模型,“以数据为中心”的计算思想已得到了人工智能先驱者的一些先期探讨,并已在当前得到了应用。

  • 隐私。数据传输中存在侵犯隐私的隐患。数据可能被恶意行为者拦截,并且存储在云等单个位置中时,数据固有的安全性也会降低。通过将数据大部保留在设备上,可最大程度地减少通信需求,进而提高安全性和隐私性。

  • 存储。许多物联网设备所获取的大部分数据是毫无用处的。想象一下,一台安防摄像机每天 24 小时不间断地记录着建筑物的入口情况。在一天的大部分时间中,该摄像机并没有发挥任何作用,因为并没有什么异常情况发生。采用仅在必要时激活的更智能的系统,可降低对存储容量的需求,进而降低需传输到云端的数据量。

  • 延迟。标准的物联网设备,例如 Amazon Alexa,需将数据传输到云来处理,然后由算法的输出给出响应。从这个意义上讲,设备只是云模型的一个便捷网关,类似于和 Amazon 服务器之间的信鸽。设备本身并非智能的,响应速度完全取决于互联网性能。如果网速很慢,那么 Amazon Alexa 的响应也会变慢。自带自动语音识别功能的智能 IoT 设备,由于降低甚至是完全消除了对外部通信的依赖,因此降低了延迟。

上述问题推动着边缘计算的发展。边缘计算的理念就是在部署在云“边缘”的设备上实现数据处理功能。这些边缘设备在内存、计算和功能方面都高度受限于设备自身的资源,进而需要研发更为高效的算法、数据结构和计算方法。

此类改进同样适用于规模较大的模型,在不降低模型准确率(accuracy)的同时,实现机器学习模型效率数个数量级的提高。例如,Microsoft 开发的 Bonsai 算法 可小到 2 KB,但比通常 40MB 的 kNN 算法或是 4MB 的神经网络具有更好的性能。这个结果听上去可能无感,但如果换句话说——在规模缩小了一万倍的模型上取得同样的准确率,这就十分令人印象深刻了。规模如此小的模型,可以运行在 2KB 内存的 Arduino Uno 上。简而言之,现在可以在售价 5 美元的微控制器上构建此类机器学习模型。

机器学习正处于一个交叉路口,两种计算范式齐头并进,即以计算为中心的计算,和以数据为中心的计算。在以计算为中心的计算范式下,数据是在数据中心的实例上存储和分析的;而在以数据为中心的计算范式下,处理是在数据的原始位置执行的。尽管在目前,以计算为中心的计算范式似乎很快会达到上限,但是以数据为中心的计算范式才刚刚起步。

当前,物联网设备和嵌入式机器学习模型日益普及。预计到 2020 年底,将有超过 200 亿台活跃设备。人们可能并未注意到其中许多设备,例如智能门铃、智能恒温器,以及只要用户说话甚至拿起就可以“唤醒”的智能手机。本文下面将深入介绍 TinyML 的工作机制,以及在当前和将来的应用情况。

图 2 云的层级结构图。

TinyML 示例

以前,设备执行的各种操作必需基于复杂的集成电路。现在,机器学习的硬件“智能”正逐渐抽象为软件,使得嵌入式设备更加简单、轻量级和灵活。

使用嵌入式设备实现机器学习,需解决巨大的挑战,但在该领域也取得了长足的进步。在微控制器上部署神经网络,关键挑战在于低内存占用、功率受限和计算受限。

智能手机是最典型的 TinyML 例子。手机一直处于主动聆听“唤醒词”的状态,例如 Android 智能手机的“你好,谷歌”,以及 iPhone 的“你好,Siri”。如果通过智能手机的 CPU(主流 iPhone 的 CPU 已达 1.85 GHz)运行语音唤醒服务,那么电池电量会在短短几个小时内耗尽。这样的电量消耗是不可接受的,而语音唤醒服务大多数人每天最多使用几次。

为了解决这个问题,开发人员创建了可以用小型电池(例如 CR2032 纽扣电池)供电的专用低功耗硬件。即使 CPU 未运行(通常表现为屏幕并未点亮),集成电路也能保持活跃状态。

这样的集成电路消耗功率仅为 1mW,如果使用标准的 CR2032 电池,可供电长达一年。

虽然有些人不觉得这有什么了不起的,但这是非常重要的进步。许多电子设备的瓶颈就是能源。任何需要市电供应的设备,其使用都受电力布线位置的限制。如果同一位置部署了十几台设备,可能电源会很快不堪重负。市电的效率并不高,且代价昂贵。将电源电压(例如美国使用的 120V)转换为典型的电路电压范围(通常约为 5V),会浪费掉大量的能量。笔记本电脑用户在拔充电器时,对此都深有体会吧。充电器的内部变压器所产生的热量,就是在电压转换过程中被浪费掉的能量。

即使设备自带电池,电池续航也是有限的,需要频繁充电。许多消费类电子设备的电池,设计上可持续使用一个工作日。一些 TinyML 设备可以使用硬币大小的电池持续运行一年,这意味着可将此类设备部署在一些偏远的环境中,仅在必要时进行通信,以节省电源。

在一台智能手机中,唤醒词服务并非唯一无缝嵌入的 TinyML 应用。加速度计数据可用于确定用户是否刚拿起手机,进而唤醒 CPU 并点亮屏幕。

显然,这些并非 TinyML 的唯一用武之地。实际上,TinyML 为产品粉丝和企业提供了大量令人兴奋的应用,用于实现更智能的 IoT 设备。在当前数据变得越来越重要的情况下,将机器学习资源分发到远端内存受限设备的能力,为农业、天气预报或地震等数据密集行业提供了巨大机遇。

毫无疑问,赋予边缘设备执行数据驱动处理的能力,将为工业过程中的计算范式带来转变。举个例子,如果能够监测农作物并检测到诸如土壤湿度、特定气体(例如苹果成熟时会释放出乙烷)等特征或特定的大气条件(例如大风、低温或高湿度等),将极大地促进作物的生长,提高作物的产量。

另一个例子是,在智能门铃中可安装摄像机,使用面部识别确定到场的来访者。这将实现安防功能,甚至可以在有人到场时将门铃摄像头输出到屋内电视屏幕,以便主人了解门口的访客情况。

目前,TinyML 主要的两个重点应用领域是:

  • 关键字发现。大多数人已经非常熟悉此应用,例如“你好,Siri”和“你好,Google”等关键字,通常也称为“热词”或“唤醒词”。设备会连续监听来自麦克风的音频输入,训练实现仅响应与所学关键字匹配的特定声音序列。这些设备比自动语音识别(automatic speech recognition,ASR)更简单,使用更少的资源。Google 智能手机等设备还使用了 级联架构 实现扬声器的验证,以确保安全性。

  • 视觉唤醒词。视觉唤醒词使用图像类似替代唤醒词的功能,通过对图像做二分类表示存在与否。例如,设计一个智能照明系统,在检测到人的存在时启动,并在人离开时关闭。同样,野生动物摄影师可以使用视觉唤醒功能在特定的动物出现时启动拍摄,安防摄像机可以在检测到人活动时启动拍摄。

下图全面展示当前 TinyML 机器学习的应用概览。

图 3 TinyML 的机器学习用例。图片来源:NXP。

TinyML 工作机制

TinyML 算法的工作机制与传统机器学习模型几乎完全相同,通常在用户计算机或云中完成模型的训练。训练后处理是 TinyML 真正发挥作用之处,通常称为“深度压缩”(deep compression)。

图 4 深度压缩示意图。来源:[ArXiv 论文](https://arxiv.org/pdf/1510.00149.pdf).

模型蒸馏(Distillation)

模型在训练后需要更改,以创建更紧凑的表示形式。这一过程的主要实现技术包括剪枝(pruning)和知识蒸馏。

知识蒸馏的基本理念,是考虑到较大网络内部存在的稀疏性或冗余性。虽然大规模网络具有较高的表示能力,但如果网络容量未达到饱和,则可以用具有较低表示能力的较小网络(即较少的神经元)表示。在 Hinton 等人 2015 年发表的研究工作中,将 Teacher 模型中转移给 Student 模型的嵌入信息称为“黑暗知识”(dark knowledge)。

下图给出了知识蒸馏的过程:

图 5 深度压缩过程图。

图中 Teacher 模型是经过训练的卷积神经网络模型,任务是将其“知识”转移给称为 Student 模型的,参数较少的小规模卷积网络模型。此过程称为“知识蒸馏”,用于将相同的知识包含在规模较小的网络中,从而实现一种网络压缩方式,以便用于更多内存受限的设备上。

同样,剪枝有助于实现更紧凑的模型表示。宽泛而言,剪枝力图删除对输出预测几乎无用的神经元。这一过程通常涉及较小的神经权重,而较大的权重由于在推理过程中具有较高的重要性而会得到保留。随后,可在剪枝后的架构上对网络做重新训练,调优输出。

图 6 对蒸馏模型知识表示做剪枝的图示。

量化(Quantization)

蒸馏后的模型,需对此后的训练进行量化,形成兼容嵌入式设备架构的格式。

为什么要做量化?假定对于一台 Arduino Uno,使用 8 位数值运算的 ATmega328P 微控制器。在理想情况下要在 Uno 上运行模型,不同于许多台式机和笔记本电脑使用 32 位或 64 位浮点表示,模型的权重必须以 8 位整数值存储。通过对模型做量化处理,权重的存储规模将减少到 1/4,即从 32 位量化到 8 位,而准确率受到的影响很小,通常约 1-3%。

图 7 8 位编码过程中的量化误差示意图,进而将用于重构 32 位浮点数。图片来源:《[TinyML](https://tinymlbook.com/)》一书。

由于存在 量化误差),可能会在量化过程中丢失某些信息。例如在基于整型的平台上,值为 3.42 的浮点表示形式可能会被截取为 3。为了解决这个问题,有研究提出了量化可感知(quantization-aware,QA)训练作为替代方案。QA 训练本质上是在训练过程中,限制网络仅使用量化设备可用的值(具体参见 Tensorflow 示例)。

霍夫曼编码

编码是可选步骤。编码通过最有效的方式来存储数据,可进一步减小模型规模。通常使用著名的 霍夫曼编码。

编译

对模型量化和编码后,需将模型转换为可被轻量级网络解释器解释的格式,其中最广为使用的就是 TF Lite(约 500 KB 大小)和 TF Lite Micro(约 20 KB)。模型将编译为可被大多数微控制器使用并可有效利用内存的 C 或 C++ 代码,由设备上的解释器运行。

图 8 TinyML 应用的工作流图。来源:Pete Warden 和 Daniel Situnayake 编写的《[TinyML](https://tinymlbook.com/)》一书。

大多数 TinyML 技术,针对的是处理微控制器所导致的复杂性。TF Lite 和 TF Lite Micro 非常小,是因为其中删除了所有非必要的功能。不幸的是,它们同时也删除了一些有用的功能,例如调试和可视化。这意味着,如果在部署过程中出现错误,可能很难判别原因。

另外,尽管模型必须存储在设备本地,但模型也必须要支持执行推理。这意味着微控制器必须具有足够大的内存去运行(1)操作系统和软件库;(2)神经网络解释器,例如 TF Lite);(3)存储的神经网络权重和架构;(4)推理过程中的中间结果。因此,TinyML 方向的研究论文在给出内存使用量、乘法累加单元(multiply-accumulate units,MAC)数量,准确率等指标的同时,通常还需给出量化算法的峰值内存使用情况。

为什么不在设备上训练?

在设备上进行训练会引入额外的复杂性。由于数值精度的降低,要确保网络训练所需的足够准确率是极为困难的。在标准台式计算机的精度下,自动微分方法是大体准确的。计算导数的精度可达令人难以置信的 10^{-16},但是在 8 位数值上做自动微分,将给出精度较差的结果。在反向传播过程中,会组合使用求导并最终用于更新神经参数。在如此低的数值精度下,模型的准确率可能很差。

尽管存在上述问题,一些神经网络还是使用了 16 位和 8 位浮点数做了训练。

第一篇研究降低深度学习中的数值精度的论文,是 Suyog Gupta 及其同事在 2015 年发表的“具有有限数值精度的深度学习”(Deep Learning with Limited Numerical Precision)。该论文给出的结果非常有意思,即可在几乎不降低准确率的情况下,将 32 位浮点表示形式降至 16 位固定点表示。但该结果仅适用于使用随机舍入(stochastic rounding)的情况,因为其在均值上产生无偏结果。

在 Naigang Wang 及其同事 2018 年发表的论文“使用 8 位浮点数训练深度神经网络”(Training Deep Neural Networks with 8-bit Floating Point Numbers)中,使用了 8 位浮点数训练神经网络。在训练中使用 8 位数值,相比在推理中要明显难以实现,因为需要在反向传播期间保持梯度计算的保真度(fidelity),使得在做自动微分时能够达到机器的精度。

计算效率如何?

可以通过定制模型,提高模型的计算效率。一个很好的例子就是 MobileNet V1 和 MobileNet V2,它们是已在移动设备上得到广泛部署的模型架构,本质上是一种通过重组(recast)实现更高计算效率卷积运算的卷积神经网络。这种更有效的卷积形式,称为深度可分离卷积结构(depthwise separable convolution)。针对架构延迟的优化,还可以使用 基于硬件的概要(hardware-based profiling) 和 神经架构搜索(neural architecture search) 等技术,对此本文将不做详述。

新一轮人工智能革命

在资源受限的设备上运行机器学习模型,为许多新的应用打开了大门。使标准的机器学习更加节能的技术进步,将有助于消除数据科学对环境影响的一些担忧。此外,TinyML 支持嵌入式设备搭载基于数据驱动算法的全新智能,进而应用在了从 预防性维护 到 检测森林中的鸟叫声 等多种场景中。

尽管继续扩大模型的规模是一些机器学习从业者的坚定方向,但面向内存、计算和能源效率更高的机器学习算法发展也是一个新的趋势。TinyML 仍处于起步阶段,在该方向上的专家很少。本文参考文献中列出了一些 TinyML 领域中的重要论文,建议有兴趣的读者去阅读。该方向正在快速增长,并将在未来几年内,成为人工智能在工业领域的重要新应用。请保持关注。

作者简介

Matthew Stewart,哈佛大学环境和数据科学博士研究生,Critical Future 公司机器学习顾问,个人博客地址:https://mpstewart.net

参考文献

[1] Hinton, Geoffrey & Vinyals, Oriol & Dean, Jeff. (2015).Distilling the Knowledge in a Neural Network.

[2] D. Bankman, L. Yang, B. Moons, M. Verhelst and B. Murmann, “An always-on 3.8μJ/86% CIFAR-10 mixed-signal binary CNN processor with all memory on chip in 28nm CMOS,” 2018 IEEE International Solid-State Circuits Conference — (ISSCC), San Francisco, CA, 2018, pp. 222–224, doi: 10.1109/ISSCC.2018.8310264.

[3] Warden, P. (2018).Why the Future of Machine Learning is Tiny. Pete Warden’s Blog.

[4] Ward-Foxton, S. (2020).AI Sound Recognition on a Cortex-M0: Data is King. EE Times.

[5] Levy, M. (2020).Deep Learning on MCUs is the Future of Edge Computing. EE Times.

[6] Gruenstein, Alexander & Alvarez, Raziel & Thornton, Chris & Ghodrat, Mohammadali. (2017).A Cascade Architecture for Keyword Spotting on Mobile Devices.

[7] Kumar, A., Saurabh Goyal, and M. Varma. (2017).Resource-efficient Machine Learning in 2 KB RAM for the Internet of Things.

[8] Zhang, Yundong & Suda, Naveen & Lai, Liangzhen & Chandra, Vikas. (2017).Hello Edge: Keyword Spotting on Microcontrollers.

[9] Fedorov, Igor & Stamenovic, Marko & Jensen, Carl & Yang, Li-Chia & Mandell, Ari & Gan, Yiming & Mattina, Matthew & Whatmough, Paul. (2020).TinyLSTMs: Efficient Neural Speech Enhancement for Hearing Aids.

[10] Lin, Ji & Chen, Wei-Ming & Lin, Yujun & Cohn, John & Gan, Chuang & Han, Song. (2020).MCUNet: Tiny Deep Learning on IoT Devices.

[11] Chen, Tianqi & Moreau, Thierry. (2020).TVM: An Automated End-to-End Optimizing Compiler for Deep Learning.

[12] Weber, Logan, and Reusch, Andrew (2020).TinyML — How TVM is Taming Tiny.

[13] Krishnamoorthi, Raghuraman. (2018).Quantizing deep convolutional networks for efficient inference: A whitepaper.

[14] Yosinski, Jason & Clune, Jeff & Bengio, Y. & Lipson, Hod. (2014).How transferable are features in deep neural networks?.

[15] Lai, Liangzhen & Suda, Naveen & Chandra, Vikas. (2018).CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs.

[16] Chowdhery, Aakanksha & Warden, Pete & Shlens, Jonathon & Howard, Andrew & Rhodes, Rocky. (2019).Visual Wake Words Dataset.

[17] Warden, Pete. (2018).Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition.

[18] Zemlyanikin, Maxim & Smorkalov, Alexander & Khanova, Tatiana & Petrovicheva, Anna & Serebryakov, Grigory. (2019).512KiB RAM Is Enough! Live Camera Face Recognition DNN on MCU. 2493–2500. 10.1109/ICCVW.2019.00305.

原文链接:

https://towardsdatascience.com/tiny-machine-learning-the-next-ai-revolution-495c26463868

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

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

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

相关文章

springboot导入项目依赖报错_最详细的 Spring Boot 多模块开发与排坑指南

来源于公众未读代码 ,作者达西呀创建项目创建一个 SpringBoot 项目非常的简单,简单到这里根本不用再提。你可以在使用 IDEA 新建项目时直接选择 Spring Initlalize 创建一个 Spring Boot 项目,也可以使用 Spring 官方提供的 Spring Boot 项目…

图书管理系统html_结自主可控数字化硕果,同方鼎欣推进基于OFD技术的数字档案管理系统研发...

01浅谈建立自主可控版式格式的重要性说起版式文档,相信大家首先想到的就是Adobe公司推出的PDF,这种格式的电子文档,其效果不因软硬件环境变化而变化,在版面、字体、字号方面可以与纸质文件保持一致,这就是版式文档的重…

联结你与万物的8种元素

本文经授权转载自《原理》微信公众号你不仅由元素构成,你其实就是元素。不同元素的原子在你的身体里,它们随你而动,它们与你一同经历成功的狂喜,一同承受失败的悲痛,也一同走过平淡的日常。当你吃下食物时,…

Spring中的用到的设计模式大全

spring中常用的设计模式达到九种,我们举例说明: 第一种:简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数&#xff…

crontab 日志_聊聊老板让我删除日志文件那些事儿

一、背景老板:小白,刚才咱们的机器告警磁盘空间不足了,你去定位一下原因。我:(......空间不足碍我屁事儿)好的,马上定位我:老板,太多N天前的日志文件占用了太多空间。 老板:你感觉你…

【专家观点】刘经南院士:北斗+5G为何能引领新基建?

来源:智能研究院日前,“第四届全球未来出行大会(GFM2020)”在德清召开。本次大会旨在探讨未来的城市、未来的出行、未来的汽车如何为居民提供更加经济、便捷、安全、科技友好的新出行方式。在论坛的演讲中,中国工程院院…

ae中心点重置工具_(精品)AE从小白到大神之路(七)-AE动画—动效常见的设计方法...

动画——动效常见的设计方法一.基础动画:1.通过物体本身的旋转/缩放/位移/不透明度等基本属性来做的一些动效属于最基础的动画效果。二.路径动画:(1)修剪路径动画(前面系列案例——下载提示完成…

css 透明度_如何使用CSS实现精美视频片头制作

借助CSS所提供的动画效果,旋转效果除了能够制作动画及网页页面元素,如按钮之外,还可以使用CSS实现精美的动态片头的制作。本文主要介绍CSS与HTML实现精美的动画片头制作实例。如何使用CSS实现精美片头制作CSS动态片头设计实例本例设计使用烟雾…

重磅盘点:过去8年中深度学习最重要的想法

原文:Deep Learning’s Most Important Ideas[1]作者:Denny Britz(ML 研究员,Google Brain 前成员)译者:REN深度学习是一个瞬息万变的领域,层出不穷的论文和新思路可能会令人不知所措。即使是经…

ActiveMQ 发送和接收消息

一、添加 jar 包 <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.11.2</version> </dependency> 二、消息传递的两种形式 1、点对点&#xff1a;发送的消息只能被一个消…

机器人 蓝buff 钩_机器人要在S赛登场了?Ming韩服练起来了,这是RNG黑科技?

随着S9全球总决赛日程的逼近&#xff0c;各大战队也纷纷结束了休假&#xff0c;投入到了紧张的训练之中。对于这次S9世界赛的版本&#xff0c;应该是上中野的版本&#xff0c;因为不少战士单带型上单得到了巨大加强&#xff0c;而且中路会有一些法师英雄回归&#xff0c;总体来…

java构造器_Java类加载的过程

阅读本文约需要8分钟 大家好&#xff0c;我是你们的导师&#xff0c;经常看我朋友圈的同学应该知道&#xff0c;我每天会在微信上给大家免费提供以下服务&#xff01;1、长期为你提供最优质的学习资源&#xff01;2、给你解决技术问题&#xff01;3、每天在朋友圈里分享优质的技…

再讲卷积的本质及物理意义,解释的真幽默!

来源&#xff1a;电子工程专辑编辑 ∑Gemini分三个部分来理解&#xff1a;1&#xff0e;信号的角度2&#xff0e;数学家的理解&#xff08;外行&#xff09;3&#xff0e;与多项式的关系>>>>卷积这个东东是“信号与系统”中论述系统对输入信号的响应而提出的。因为…

分区助手扩大c盘后自动修复_磁盘分区工具,这个好用;无论调整C盘还是系统迁移...

使用傲梅分区助手安全地对磁盘进行分区安全分区注意事项1.对于重要数据&#xff0c;最好习惯定期备份。 您可以使用免费备份软件- 傲梅轻松备份进行备份。2.当傲梅分区助手正在移动数据时&#xff0c;请不要轻易地结束过程或强制关闭程序。3.在分区过程中&#xff0c;请确保您的…

c语言转义字符_C语言啊中的转义符有什么含义?

其实所谓的换行符就是回车&#xff0c;在各类编程语言中换行符是很常见的&#xff0c;而转义字符是一种特殊的字符常量。转义字符以反斜线""开头&#xff0c;后跟一个或几个字符。转义字符具有特定的含义&#xff0c;不同于字符原有的意义&#xff0c;故称“转义”字…

强化学习到底是什么,它如何运作?

强化学习是一种行为学习模型&#xff0c;由算法提供数据分析反馈&#xff0c;引导用户逐步获取最佳结果。来源丨Towards Data Science作者丨Jair Ribeiro编译丨科技行者强化学习属于机器学习中的一个子集&#xff0c;它使代理能够理解在特定环境中执行特定操作的相应结果。目前…

hihocoder1457

http://hihocoder.com/problemset/problem/1457 找不重复子串的和 topo序搞一搞&#xff0c;用父亲更新儿子节点的val&#xff0c;记得乘上节点数 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack-protector") //#…

科普天地|“GPS欺骗”如何误导自动驾驶汽车

文章来源&#xff1a;新华网&#xff0c;版权归原作者及刊载媒体所有。新华社北京11月2日电&#xff08;记者彭茜&#xff09;一辆正常行驶的自动驾驶汽车在30秒内径直蹭上了马路牙子&#xff0c;车载全球定位系统&#xff08;GPS&#xff09;、激光雷达等“高精尖”设备竟然全…

json里面的list数据取不出来_[工具]用kaggle API下载数据集

操作平台&#xff1a;colab由于是在colab&#xff0c;需要先mount google drivefrom google.colab import drive drive.mount(/content/gdrive)导到当前目录cd gdrive/My Drive/your path上传你的kaggle.json; kaggle.json下载方法&#xff1a;kaggle官网-->右上角My Accoun…

训练过程acc_AI 深度学习训练tricks总结(均有实验支撑)

↑↑↑↑↑点击上方蓝色字关注我们&#xff01;『运筹OR帷幄』转载作者&#xff1a;Jones知乎作者丨Jones知乎来源丨https://zhuanlan.zhihu.com/p/261999668编辑丨极市平台编者按 本文作者模拟复现了自己在深度学习训练过程中可能遇到的多种情况&#xff0c;并尝试解决这些问题…