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

AI的进阶之路:从机器学习到深度学习的演变(三)

(承接上集:AI的进阶之路:从机器学习到深度学习的演变(二))

四、深度学习(DL):机器学习的革命性突破

在这里插入图片描述

深度学习(DL)作为机器学习的一个重要分支,正在彻底改变我们与技术交互的方式。它不仅模拟了人脑的神经网络结构,更实现了前所未有的数据处理能力和分析深度。通过层层递进的神经网络,深度学习已经在医疗诊断、自动驾驶、艺术创作等领域展现出惊人的潜力,开创了人工智能的新纪元。

4.1 深度学习的核心概念

深度学习的核心在于多层神经网络的构建和训练。这些网络通过多层次的结构,能够逐步抽取数据中的复杂特征,从而实现对复杂任务的高效处理。神经网络的基本单元是神经元,类似于人脑中的神经元,通过权重和激活函数处理输入信息。网络结构通常包括输入层、多个隐藏层和输出层,隐藏层负责逐层提取和转换数据特征,而输出层则根据任务需求生成最终的预测结果。学习过程主要依赖反向传播算法,通过计算预测误差并逐层调整权重参数,使模型逐步优化其性能。

4.2 激活函数

在这里插入图片描述

激活函数是神经网络中的关键组件,它们决定了神经元的输出方式,赋予网络非线性变换的能力,使其能够学习和表示复杂的模式和关系。选择合适的激活函数对网络的性能和训练速度至关重要。以下是几种常见的激活函数及其通俗解释:

  • Sigmoid函数:这个函数将输入值压缩到0和1之间,就像一个开关,决定信息是否通过。然而,在深层网络中,Sigmoid函数可能会使梯度变得非常小,导致训练过程变慢或停滞。尽管如此,Sigmoid函数在早期的神经网络中广泛应用,尤其是在二分类问题的输出层。

  • Tanh函数:类似于Sigmoid,但它将输入值压缩到-1和1之间。这使得数据更加中心化,有助于模型更好地学习。然而,它同样可能遇到梯度消失的问题,尤其是在深层网络中。Tanh函数常用于隐藏层,因其输出范围更广,能够更有效地捕捉数据的特征。

  • ReLU(Rectified Linear Unit):这是目前最常用的激活函数之一。它的工作原理非常简单:如果输入是正数,就直接输出;如果是负数,就输出零。这种简单的操作不仅加快了计算速度,还帮助网络更快地收敛。ReLU函数在深层网络中的表现尤为出色,减少了梯度消失的问题,提升了模型的训练效率。

  • Leaky ReLU:为了解决ReLU可能导致的“神经元死亡”问题(即一些神经元在训练过程中永远不激活),Leaky ReLU在负数部分引入了一个很小的斜率(通常是0.01)。这样,即使输入是负数,神经元也能有微小的梯度,继续学习。Leaky ReLU提升了模型的稳定性和学习能力,避免了部分神经元在训练中完全失活的情况。

通过选择合适的激活函数,深度学习模型能够更高效地学习复杂的模式和关系,提升整体性能。不同的激活函数在不同的应用场景和网络结构中具有不同的优势,研究者和工程师需要根据具体任务需求和网络架构选择最适合的激活函数。

4.3 损失函数

在这里插入图片描述

损失函数是深度学习模型优化过程中的指南针,它量化了模型预测与真实值之间的误差,并指导模型朝着更好的方向学习。选择合适的损失函数直接影响模型的收敛速度和最终性能。以下是几种常见的损失函数及其通俗解释:

  • 均方误差(MSE):这种损失函数计算预测值与真实值之间差异的平方,并取平均值。它适用于回归问题,如预测房价或股票价格。MSE对异常值非常敏感,这意味着如果有一些预测值偏离真实值很多,MSE会变得很大,从而迫使模型尽量减少这些大的误差。MSE的优势在于其简单性和易于理解,但在存在大量噪声数据时,可能会导致模型对异常值过于敏感。

  • 交叉熵(Cross-Entropy):交叉熵损失函数主要用于分类任务,尤其是多类别分类。它衡量的是预测概率分布与真实分布之间的差异。交叉熵在分类任务中效果非常好,因为它不仅考虑了预测是否正确,还考虑了预测的置信度。高交叉熵值表示预测分布与真实分布差异较大,模型需要进一步优化;低交叉熵值表示模型预测较为准确。交叉熵在神经网络中的应用广泛,特别是在Softmax输出层的分类任务中表现出色。

  • Huber损失:Huber损失结合了均方误差和绝对误差的优点。它在误差较小时使用MSE,以保持对小偏差的敏感度;在误差较大时使用绝对误差,以减少对异常值的过度惩罚。这使得Huber损失在处理有噪声的数据或异常值较多的场景中表现出色。Huber损失的鲁棒性较强,能够在不同程度的噪声和异常值下保持较好的性能。

  • Hinge损失:Hinge损失主要用于支持向量机(SVM)等分类模型,旨在最大化分类边界。它不仅关注分类是否正确,还要求正确分类的样本与边界有一定的距离。这种损失函数适用于需要高置信度决策的场景,如安全关键系统或医疗诊断,提供更可靠的分类结果。Hinge损失通过增加分类边界的宽度,提升了模型的泛化能力,减少了过拟合的风险。

通过选择合适的损失函数,深度学习模型能够更有效地优化其预测能力,提升整体性能。不同的损失函数在不同的任务和数据分布中具有不同的优势,研究者需要根据具体问题和应用场景选择最适合的损失函数,以实现最佳的模型表现。

4.4 优化算法

优化算法是深度学习模型训练过程中的核心引擎,通过智能地调整网络参数来最小化损失函数。选择适合的优化算法不仅能加快训练速度,还能帮助模型找到更优的参数解,从而提升最终性能。以下是几种常见的优化算法及其通俗解释:

  • 梯度下降法(Gradient Descent):这是最基础的优化算法。它通过计算损失函数相对于模型参数的梯度(即方向和大小),并朝着减少损失的方向更新参数。梯度下降有三种主要变体:

    • 批量梯度下降:使用全部训练数据计算梯度,更新参数。这种方法计算稳定,但速度较慢,尤其在处理大规模数据集时效率较低。
    • 随机梯度下降(SGD):每次只使用一个样本计算梯度,快速更新参数,但可能导致更新过程不稳定,尤其在噪声较大的数据集上容易震荡。
    • 小批量梯度下降:介于批量和随机之间,每次使用一小部分样本计算梯度,兼具稳定性和速度,是实践中最常用的方法。小批量梯度下降能够更有效地利用现代硬件(如GPU)的并行计算能力,提升训练效率。
  • 动量法(Momentum):动量法通过累积过去的梯度信息,帮助模型在训练过程中保持一致的更新方向,减少震荡,加速收敛。它类似于物理中的动量,既考虑当前的梯度,也考虑之前的梯度累积,提升了训练效率,尤其在复杂的损失函数表面。动量法能够帮助模型更快地穿越局部最小值,加快达到全局最优解的速度。

  • AdaGrad:AdaGrad引入了自适应学习率机制,根据参数的历史梯度调整每个参数的学习速率。对于频繁更新的参数,学习率会减小;对于不常更新的参数,学习率会增大。这使得AdaGrad特别适合处理稀疏数据,如自然语言处理任务中的词向量训练。然而,AdaGrad在训练过程中学习率会持续减小,可能导致模型在后期训练时收敛速度变慢。

  • RMSprop:RMSprop通过引入梯度平方的指数移动平均,解决了AdaGrad学习率急剧下降的问题。它为每个参数维护一个自适应的学习率,适合处理非平稳目标和具有大幅度曲率变化的优化问题,使得模型能够在复杂的损失函数表面保持稳定的学习速度。RMSprop在深度学习中的应用广泛,尤其适用于循环神经网络(RNN)的训练。

  • Adam(Adaptive Moment Estimation):Adam结合了动量法和RMSprop的优点,维护了梯度的一阶矩(均值)和二阶矩(未中心化的方差)。它能够自动调整每个参数的学习率,同时保持训练的稳定性和效率。Adam是目前深度学习中最常用的优化算法,特别适合大规模模型的训练,如计算机视觉和自然语言处理任务。Adam在处理稀疏梯度和非平稳目标方面表现出色,成为深度学习实践中的默认选择。

通过选择适合的优化算法,深度学习模型能够更高效地训练,找到更优的参数解,提升整体性能和准确性。不同的优化算法在不同的网络结构和任务需求下具有不同的优势,研究者和工程师需要根据具体问题和应用场景选择最合适的优化算法,以实现最佳的模型表现。

4.5 深度学习的优势与挑战

深度学习拥有强大的特征学习能力,能够自动从原始数据中提取关键特征,显著减少了对人工设计特征的依赖。这一优势使得深度学习在图像识别、语音识别和自然语言处理等领域表现卓越,甚至在某些任务上超越了人类的准确率。同时,深度学习具有广泛的适用性,能够处理各种复杂和大规模的数据,具备高度的灵活性和扩展性。

然而,深度学习也面临诸多挑战:

  • 数据和计算资源需求高:训练高质量的深度学习模型通常需要大量的标注数据和强大的计算资源,增加了开发成本。数据的获取和标注过程耗时且昂贵,尤其是在需要专业知识的领域,如医疗诊断和法律分析。此外,训练深度学习模型需要高性能的硬件设备(如GPU、TPU),进一步提高了技术实施的门槛。

  • 模型解释性差:深度学习模型往往是“黑盒”式的,难以解释其决策过程,这在需要高透明度的应用中是一个问题。例如,在医疗诊断中,医生和患者需要理解AI系统的诊断依据,以确保决策的可靠性和合理性;在金融领域,监管机构要求对AI决策过程进行解释,以确保合规性和公平性。

  • 鲁棒性和安全性问题:如何构建更可靠、更透明的深度学习系统,提升模型的鲁棒性和安全性,是当前研究的重点方向。深度学习模型容易受到对抗攻击,即通过微小的输入扰动欺骗模型做出错误的预测。此外,模型在面对与训练数据分布不一致的新数据时,性能可能显著下降,影响其实际应用的稳定性和可靠性。

  • 伦理和社会问题:深度学习技术的广泛应用引发了诸多伦理和社会问题,如隐私保护、算法偏见和就业影响等。如何在推动技术发展的同时,保障社会的公平与安全,是深度学习技术必须面对的重要挑战。例如,面部识别技术可能导致隐私泄露和滥用,推荐系统可能强化信息茧房和偏见,自动化技术可能取代部分传统工作岗位,导致就业结构变化。

4.6 深度学习的发展历程

深度学习的发展历程展示了人类在追求人工智能道路上的不懈探索与创新。从最初的感知机模型,到多层神经网络的提出,再到近年来的卷积神经网络(CNN)、循环神经网络(RNN)以及Transformer模型,每一次技术突破都推动了深度学习的前进。特别是近年来,随着大数据和高性能计算的发展,深度学习取得了飞速的进展,广泛应用于各个领域,成为推动AI技术发展的重要力量。

  • 感知机与早期神经网络:1950年代,感知机模型被提出,是最早的神经网络模型之一。尽管感知机在简单任务上表现出色,但由于其线性可分的限制,无法处理复杂的非线性问题,导致早期神经网络研究的停滞。

  • 多层神经网络与反向传播算法:1980年代,多层神经网络(如前馈神经网络)和反向传播算法的提出,为深度学习的发展奠定了基础。反向传播算法通过计算损失函数相对于每个参数的梯度,并逐层更新参数,实现了多层神经网络的有效训练。

  • 卷积神经网络(CNN)的崛起:2012年,AlexNet在ImageNet图像识别比赛中取得了压倒性的胜利,标志着卷积神经网络(CNN)在计算机视觉领域的成功。CNN通过卷积层和池化层的设计,能够自动提取图像中的空间特征,显著提升了图像识别的准确性和效率。

  • 循环神经网络(RNN)与序列数据处理:RNN及其变体(如长短期记忆网络,LSTM)在处理序列数据(如语音、文本和时间序列数据)方面表现出色。RNN能够捕捉数据中的时间依赖关系,广泛应用于语音识别、机器翻译和文本生成等任务。

  • Transformer模型与自然语言处理的革新:2017年,Transformer模型的提出彻底改变了自然语言处理(NLP)的格局。Transformer通过自注意力机制,能够高效地捕捉长距离依赖关系,显著提升了机器翻译和文本生成的性能。基于Transformer的预训练模型(如BERT、GPT系列)在多个NLP任务中取得了突破性成果,推动了自然语言理解和生成技术的飞速发展。

  • 生成对抗网络(GAN)与创意生成:2014年,生成对抗网络(GAN)的提出,为图像生成和创意内容创作带来了新的可能性。GAN通过生成器和判别器的对抗训练,能够生成高质量的图像、音频和视频内容,广泛应用于图像生成、艺术创作和数据增强等领域。

未来,随着算法的进一步优化和计算资源的持续提升,深度学习将在更多复杂任务中发挥更大的作用,推动人工智能技术迈向新的高度。新兴的模型架构和训练方法,如自监督学习、多模态学习和强化学习,将进一步拓展深度学习的应用范围和能力,为解决更具挑战性的问题提供强大的工具和方法。

4.7 深度学习的实际应用案例

为了更好地理解深度学习的实际应用,以下将通过几个具体案例,展示深度学习在各个领域中的实际效果和影响:

  • 图像识别:Google的DeepMind开发的AlphaGo Zero,通过深度学习技术,不仅在围棋比赛中击败了人类冠军,还通过自我对弈不断优化自身策略,展示了深度学习在复杂策略游戏中的强大能力。另一个例子是Facebook的DeepFace系统,能够实现与人类接近的高精度人脸识别,为社交媒体平台的用户体验和安全保障提供了有力支持。

  • 语音助手:苹果的Siri、亚马逊的Alexa和谷歌助手等智能语音助手,利用深度学习技术实现了高效的语音识别和自然语言理解,能够执行各种任务,如设置提醒、播放音乐和查询信息,极大提升了用户的生活便利性。这些语音助手通过持续学习用户的偏好和行为,提供更加个性化和智能化的服务。

  • 自动驾驶:特斯拉的自动驾驶系统通过深度学习技术处理来自摄像头和传感器的数据,实现对道路环境、交通标志和行人的实时识别和决策制定,确保车辆的安全导航。Waymo的自动驾驶技术也是深度学习在交通领域的成功应用,通过大量的训练数据和先进的算法,实现了高水平的自动驾驶能力。

  • 医疗诊断:IBM的Watson Health利用深度学习技术分析医疗影像和患者数据,辅助医生进行癌症诊断和治疗方案制定,提高了诊断的准确性和效率。Google的DeepMind Health开发的AI系统能够分析眼科扫描图像,早期发现视网膜疾病,帮助医生及时干预治疗,保护患者的视力健康。

  • 艺术创作:OpenAI的DALL·E和DeepArt等深度学习模型,能够生成高质量的图像和艺术作品,展示了AI在创意领域的潜力。这些模型通过学习大量的艺术作品,能够生成符合特定风格和主题的图像,辅助艺术家进行创作和灵感激发。

这些案例不仅展示了深度学习技术在实际应用中的强大能力,也凸显了其在推动各行业智能化发展中的重要作用。深度学习通过不断优化和创新,正在改变我们的工作和生活方式,开创一个更加智能和高效的未来。

(请看下集:AI的进阶之路:从机器学习到深度学习的演变(四))


想要系统学习深度学习理论?这个专栏将带你深入理解神经网络的基石,从反向传播到各种经典网络结构,为你的深度学习之旅打下坚实基础!点击进入:深度学习理论基础

本文为原创内容,未经许可不得转载。

相关文章:

AI的进阶之路:从机器学习到深度学习的演变(三)

(承接上集:AI的进阶之路:从机器学习到深度学习的演变(二)) 四、深度学习(DL):机器学习的革命性突破 深度学习(DL)作为机器学习的一个重要分支&am…...

thinkphp 多选框

视图 <div class"form-group"><label for"c-flag" class"control-label col-xs-12 col-sm-2 col-md-4">{:__(Flag)}</label><div class"col-xs-12 col-sm-8 col-md-8"><!--formatter:off--><select …...

机器学习《西瓜书》学习笔记《待续》

如果说&#xff0c;计算机科学是研究关于“算法”的学问&#xff0c;那么机器学习就是研究关于“学习算法”的学问。 目录 绪论引言基本术语 扩展向量的张成-span使用Markdown语法编写数学公式希腊字母的LaTex语法插入一些数学的结构插入定界符插入一些可变大小的符号插入一些函…...

STM32HAL I2C函数

8.5 使用IIC协议读写EEPROM 硬件方式实现 &#xff08;HAL库&#xff09; **HAL_I2C_Mem_Write() :这种方法可以写1个或者多个字节 ** /*** brief 以阻塞模式向指定的内存地址写入数据* param hi2c 指向 I2C_HandleTypeDef 结构体的指针&#xff0c;包含指定 I2C 的配置信息…...

洛谷 P1644 跳马问题 C语言

题目&#xff1a; P1644 跳马问题 - 洛谷 | 计算机科学教育新生态 题目背景 在爱与愁的故事第一弹第三章出来前先练练四道基本的回溯/搜索题吧…… 题目描述 中国象棋半张棋盘如图 1 所示。马自左下角 (0,0) 向右上角 (m,n) 跳。规定只能往右跳&#xff0c;不准往左跳。比…...

每天40分玩转Django:实操在线商城

实操在线商城 一、今日学习内容概述 模块重要程度主要内容商品模型⭐⭐⭐⭐⭐商品信息、分类管理购物车系统⭐⭐⭐⭐⭐购物车功能实现订单系统⭐⭐⭐⭐⭐订单处理、支付集成用户中心⭐⭐⭐⭐订单管理、个人信息 二、模型设计 # models.py from django.db import models fro…...

Bug解决!ImportError: cannot import name MutableMapping from collections

省流&#xff1a;python版本更新 而一些生态库的变量命名没更新变化导致的问题 起因是在win环境下装spark 但是发现这是python底层的问题 于是想写一篇这个错误的博客警戒世人 py实在是太多生态库了 但并不是所有的都维护的很好 大概可以理解成 python原先有个东西叫col…...

【Rust自学】4.5. 切片(Slice)

4.5.0. 写在正文之前 这是第四章的最后一篇文章了&#xff0c;在这里也顺便对这章做一个总结&#xff1a; 所有权、借用和切片的概念确保 Rust 程序在编译时的内存安全。 Rust语言让程序员能够以与其他系统编程语言相同的方式控制内存使用情况&#xff0c;但是当数据所有者超…...

医学图像 三维重建,原图与灰度图叠加,原图与多图叠加显示;多图像融合显示,彩色灰度图像融合

Part1: Summary 我们在做图像分割或融合时&#xff0c;有时需要显示多份数据进行叠加显示&#xff1b;可能需要这种效果&#xff1a; 四视图&#xff1a; 基于这个&#xff0c;我看一下网上的实现总结了一下&#xff1b;实现了以下几种效果&#xff1a; Part2&#xff1a;多种…...

递归实现指数型枚举(递归)

92. 递归实现指数型枚举 - AcWing题库 每个数有选和不选两种情况 我们把每个数看成每层&#xff0c;可以画出一个递归搜索树 叶子节点就是我们的答案 很容易写出每dfs函数 dfs传入一个u表示层数 当层数大于我们n时&#xff0c;去判断每个数字的选择情况&#xff0c;输出被选…...

Unity实现Root Motion动画的Navigation自动导航

Root motion动画可以将角色的根节点&#xff08;通常是角色的骨盆或脚部&#xff09;的运动直接应用到游戏对象上&#xff0c;从而实现角色的自然移动和旋转&#xff0c;避免出现脚底打滑的现象。采用Root motion动画的游戏对象&#xff0c;通常是重载了onAnimatorMove函数&…...

[react]不能将类型“string | undefined”分配给类型“To”。 不能将类型“undefined”分配给类型“To”

场景, 封装组件的时候, 想通过外部传进去一个路由地址, 再用<Link to{}>跳转, 显示这个, 有四种方法解决 第一种 合并运算符 ?? ?? 是 空值合并运算符&#xff08;Nullish Coalescing Operator&#xff09;&#xff0c;它是 JavaScript 和 TypeScript 中的一种逻辑…...

python实现基于RPC协议的接口自动化测试

01 什么是RPC RPC&#xff08;Remote Procedure Call&#xff09;远程过程调用协议是一个用于建立适当框架的协议。从本质上讲&#xff0c;它使一台机器上的程序能够调用另一台机器上的子程序&#xff0c;而不会意识到它是远程的。 RPC 是一种软件通信协议&#xff0c;一个程…...

如何使用PSQL Tool还原pg数据库(sql格式)

新建一个数据库用来还原&#xff1b;选择新建的数据库&#xff0c;右键选择【PSQL Tool】&#xff0c;打开PSQL Tool命令行界面&#xff1b;赋予pg库对sql文件的执行权限&#xff0c;否则会报“Permission denied”的错误&#xff0c;命令如下&#xff1a; chmod urwx D://NoS…...

uni-app商品搜索页面

目录 一:功能概述 二:功能实现 一:功能概述 商品搜索页面,可以根据商品品牌,商品分类,商品价格等信息实现商品搜索和列表展示。 二:功能实现 1:商品搜索数据 <view class="search-map padding-main bg-base"> <view class…...

【深度学习】零基础介绍循环神经网络(RNN)

RNN介绍 零基础介绍语言处理技术基本介绍分词算法词法分析工具文本分类与聚类情感分析 自然语言处理词向量词向量学习模型1. 神经网络语言模型2. CBOW 和 skip-gram3. 层次化softmax方法4. 负采样方法 RNN介绍RNN的变种&#xff1a;LSTM1. Forget Gate2. Input Gate3. Update M…...

青少年编程与数学 02-004 Go语言Web编程 13课题、模板引擎

青少年编程与数学 02-004 Go语言Web编程 13课题、模板引擎 一、模板引擎模板引擎的主要特点包括&#xff1a;模板引擎的应用场景&#xff1a;Go语言中的模板引擎&#xff1a;示例&#xff1a;使用Go的html/template包 二、工作流程1. 创建模板文件2. 准备数据3. 加载模板4. 渲染…...

如何优雅的关闭GoWeb服务器

以下内容均为Let’s Go Further内容节选以及作者本人理解。 这里创建了一个后台进程用于捕获关闭信号&#xff0c;在后台进程中&#xff0c;主要内容为&#xff1a; 创建一个缓冲通道 quit使用signal.Notify函数监听并捕获关机信号SIGINT,SIGTERM&#xff0c;在捕获关机信号后…...

AI程序员,开源的Devin,OpenHands 如何使用HuggingFace Inference API

我用了一下&#xff0c;界面这样子&#xff1a; Github&#xff1a;https://github.com/All-Hands-AI/OpenHands OpenHands 如何使用HuggingFace Inference API huggingface/meta-llama/Llama-3.3-70B-Instruct 而不是 meta-llama/Llama-3.3-70B-Instruct 不要设置base URL&…...

【动手学运动规划】 5.2 数值优化基础:梯度下降法,牛顿法

朕四季常服, 不过八套. — 大明王朝1566 道长 &#x1f3f0;代码及环境配置&#xff1a;请参考 环境配置和代码运行! 上一节我们介绍了数值优化的基本概念, 让大家对最优化问题有了基本的理解. 那么对于一个具体的问题, 我们应该如何求解呢? 这一节我们将介绍几个基本的求解…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...