遗传算法与深度学习实战——进化深度学习

遗传算法与深度学习实战——进化深度学习

    • 0. 前言
    • 1. 进化深度学习
      • 1.1 进化深度学习简介
      • 1.2 进化计算简介
    • 2. 进化深度学习应用场景
    • 3. 深度学习优化
      • 3.1 优化网络体系结构
    • 4. 通过自动机器学习进行优化
      • 4.1 自动机器学习简介
      • 4.2 AutoML 工具
    • 5. 进化深度学习应用
      • 5.1 模型选择:权重搜索
      • 5.2 模型架构:架构优化
      • 5.3 超参数调整/优化
      • 5.4 验证和损失函数优化
      • 5.5 增强拓扑的神经进化
    • 小结

0. 前言

深度学习 ( Deep learning, DL) 已成为与人工智能 (Artificial Intelligence, AI) 和机器学习 (Machine Learning, ML) 爆炸式发展最相关的技术。它从被认为是一门伪科学,到被用于驾驶汽车等各种主流应用,虽然许多人认为它是未来技术的趋势,但也有人由于其日益增长的复杂性和对大量数据的依赖持更加保守的态度。
随着深度学习的复杂性增加,需要不断为其提供更多的数据,以期在特定领域取得重大突破。但通常会事与愿违,经常只得到糟糕的模型、结果。这个问题将持续存在,直到我们开发出高效的深度学习系统流程。
构建有效、鲁棒的深度学习系统的过程,与其他机器学习或数据科学过程相似。虽然在所需资源和复杂性上有所变化,但所有步骤都保持不变。而在深度学习领域,通常缺少一套可以帮助自动化某些流程的工具包。
进化深度学习 (Evolutionary Deep Learning, EDL) 是一套可以用于自动化深度学习系统开发的工具和实践,EDL 包括了广泛的进化计算方法和模式,可以应用于深度学习系统流程的各个方面。

1. 进化深度学习

1.1 进化深度学习简介

进化深度学习 (Evolutionary Deep Learning, EDL) ,也称深度神经进化 (Deep Neural Evolution)、进化神经自动机器学习 (Evolutionary Neural AutoML)、神经进化 (Neuroevolution)、进化人工智能 (Evolutionary AI)等,是将进化方法与深度学习相结合的一组技术,可以用于优化深度学习系统,包括从数据的收集到模型验证的整个过程。
进化深度学习是人工智能领域两个独特子领域的融合:进化计算 (Evolutionary Computation, EC) 和将深度学习应用于自动化和改进模型。进化计算本身是一系列模拟生物或自然过程来解决复杂问题的方法,将其应用于深度学习中,以自动化和优化解决方案,同时也有可能发现新的策略和架构。
尽管许多进化方法研究已经证明能够在自动调整深度学习模型方面取得成功,但这方面的研究在人工智能领域中并未受到足够的关注。在多数论文中,研究人员仍然通过花费大量时间进行特征工程以及超参数调整创新模型。
然而,对于许多深度学习模型而言,构建鲁棒、高性能的模型是一项艰巨且充满挑战的任务,需要对所选择的深度学习框架的所有特性有全面的了解,以便了解何时模型可能出现错误拟合的情况。进化深度学习作为一种自动机器学习 (AutoML) 解决方案,旨在解决深度学习领域面临的大部分问题。
进化深度学习的目的是提供更好的机制和工具集,以实现优化深度学习解决方案和自动化机器学习,专注于使用进化技术构建更好的优化网络。在此之前,我们首先介绍进化计算和进化算法 (Evolutionary Algorithm, EA) 的基本概念。

1.2 进化计算简介

进化计算是人工智能的一个子领域,利用生物和自然启发的过程来解决复杂问题。之所以使用进化这个词来描述这类算法,是因为这类算法多以自然选择理论为基础。
自然选择理论由达尔文在《物种起源》中提出,定义了地球上生命的进化过程。它描述了强壮和适应环境的生命能够得以生存,而虚弱或不适应环境的生命会逐渐灭绝。
基于达尔文的理论,进化计算的核心是在系统中模拟个体或种群,以找到最优解。其目的是通过允许个体改变,从而衍生或进化出一个能够在模拟环境中生存和繁衍的个体。个体的变化机制会因进化计算方法而异,但无论如何,我们都需要一种机制来量化个体的生存能力。
用于量化个体生存或繁衍能力的标准称为适应度,用于定义个体在环境中生存或执行任务的能力。适应度可以使用多种方式进行衡量,是评估个体或种群问题解决效率的重要因素。
自然选择和适应度的概念已成为多数模拟生物繁殖过程的算法的核心思想,有些算法甚至模拟了细胞中的染色体分裂和 DNA 共享。经典进化计算算法包括:

  • 人工生命:康威的生命游戏和冯·诺伊曼细胞自动机使用智能体模拟生命本身的人工过程。在这种算法中,智能体通常根据其与其他智能体或环境的接近程度移动、生存或死亡。虽然智能体模拟通常用于模仿真实世界,但也可以用于优化过程
  • 差分进化:将微分计算与进化算法相结合优化搜索的过程。这种技术通常与其他进化计算方法(如人工生命)一起使用。在这种算法中,智能体通过计算向量之差并重新应用于种群以实现进化
  • 进化算法:将自然选择的进化过程应用于具体问题上。这类方法通常专注于模拟种群进化
  • 进化程序设计:进化算法的一种特殊形式,使用代码创建算法。在这种算法中,一个个体由一块代码表示,并通过运行代码生成的某个最优值来衡量其适应度。有多种实现代码生成的方式,在多数情况下会使用更具体的方法,例如基因表达
  • 遗传算法:模拟有机体中的细胞有丝分裂,允许遗传特征传递给后代。遗传算法是将个体特征编码为基因序列,并使用基因序列评估适应度。适应度用于模拟生物选择过程和组合父代个体的基因来创建新的后代个体
  • 遗传编程:使用遗传算法构建编程代码。在遗传算法中,个体的特征较为通用,但在遗传编程中,一个特征或基因可以表示任意数量的函数或其他代码逻辑。遗传编程是一种专门的技术,可以开发新的算法代码。例如,使用遗传编程编写智能体模拟代码,用于解决迷宫问题或创建图片
  • 基因表达式编程:对遗传编程的进一步扩展,用于开发代码或数学函数。在遗传编程中,代码被抽象为高级函数,而在基因表达式编程中,目的是开发特定的数学方程。基因表达式编程与遗传编程的一个关键区别是使用表达式树来表示函数。在遗传编程中,表达式树表示代码,而在基因表达式编程中,表达式树表示数学表达式树,代码按照基于位置的明确定义的操作顺序进行执行
  • 粒子群优化:人工生命的一个子集,是对智能粒子的模拟。在算法中,评估每个粒子的适应度,并选择最佳粒子作为其余粒子聚集的焦点
  • 群体智能:一种搜索方法,模拟群体昆虫或鸟类的行为,以找到优化问题的峰值。它与粒子群优化非常相似,但实现上有所不同,具体取决于适应度的评估

下图展示了用于 EDL 应用的 EC 方法的层次结构。还可以使用其他 EC 方法来改进 DL 模型,但我们将重点介绍图中的基本方法。
进化计算

生命模拟是进化计算的一个特定子集,它模拟了自然界中所观察到的自然过程,例如粒子或鸟群的聚集方式。而遗传模拟则模拟了生物生命中细胞有丝分裂的过程,更具体地说,它模拟了基因和染色体在生物进化中的传递过程。

2. 进化深度学习应用场景

进化深度学习既是一个概念,又是一套用于深度学习优化的工具和技术。从概念上讲,EDL 是利用进化计算来优化深度学习网络的模式与实践。然而,它也提供了一套工具,可以在深度学习之上进行堆叠,甚至可以替代深度学习。
进化深度学习的应用领域非常广泛:它可以用于基本的超参数优化、神经权重搜索、在生成对抗网络中平衡对抗网络,甚至可以替代深度强化学习。实际上,我们可以将进化深度学习技术应用到任何深度学习系统中。
进化方法为深度学习系统提供了进一步优化性能的可能性,但进化深度学习的计算代价较高,可能并不适合简单的系统。然而,对于复杂或新颖的问题,进化算法能够为深度学习模型提供进一步优化的空间。

3. 深度学习优化

深度学习是一种强大的技术,但它也仍有许多不足,其中包括模型理解与优化,可能需要数小时甚至数月的数据标注或模型超参数调整。
在绝大多数情况下,我们不能直接使用模型,需要优化深度学习系统的各个方面,从调整学习率到选择激活函数。优化网络模型往往是深度学习的主要任务,如果手动进行优化,将耗费大量时间。
优化深度学习网络除了常见的超参数调整外,有时还需要优化网络体系结构本身。

3.1 优化网络体系结构

随着网络层的增加,网络会变得越来越复杂,并影响误差的反向传播过程。下图展示了在深度学习系统逐渐复杂化的过程中最常见的问题。

神经网络训练

在较深的网络中,损失会逐渐变小甚至趋近于零,称之为梯度消失问题,这种情况会导致网络较深层的权重更新缓慢甚至停滞。相反,梯度也可能在反向传播期间变得异常大,称之为爆炸梯度,这种情况会导致权重更新过大,网络参数的不稳定性,甚至可能导致算法无法收敛。
这两种梯度问题都可以使用不同技术来解决,例如对输入数据进行归一化,以及在网络中使用特殊的层或函数进行操作。这些技术增加了网络的计算复杂性,并且可能过度平滑数据中重要的特征。因此,往往需要更大、更多样化的训练数据集来提高网络性能。
虽然归一化可以解决深层网络中梯度消失和梯度爆炸的问题,但随着模型的增长,它们也会出现其他问题。例如,随着模型的增大,虽然对输入的处理能力也增加了,但可能会导致一种被称为网络记忆的副作用,特别是在输入的训练集过小时。这是因为网络过于庞大,以至于它可能开始记住整个的输入内容。
甚至一些最先进的深度学习模型,如 OpenAI 的自然语言处理模型 GPT-3,也会在一定程度上受到记忆化的影响。即使将多种形式文本的数十亿个文档输入到模型中进行训练,GPT-3 等模型仍然会重复整段记住的文本。
为了解决网络记忆问题,可以使用 Dropout 方法,在每次训练过程中停用网络层内的一定百分比的节点。通过在每次传递中关闭和打开节点,可以创建一个更通用的网络。然而,这需要将网络扩大 100%200% 为代价。
除了这些问题,深层网络添加更多层会增加更多的权重,这些权重甚至需要在数十亿甚至数万亿次迭代中进行训练,训练这样的模型需要庞大的算力。
大多数深度学习研究人员认为,更宽更深的网络很快就会达到一个瓶颈。因此,简单的解决方案是寻找可以简化这些大型网络开发的替代方法,包括将进化计算应用到深度学习中来优化网络体系结构、权重。
进化深度学习可以自动优化网络的大小和形式,以解决深层网络的各种问题,自动优化是进化深度学习的核心。
由于进化算法提供了用于解决多种问题的优化模式,进化深度学习可以在机器学习开发过程的各个方面发挥作用,包括调整模型超参数、特征工程、模型验证、模型选择和体系结构。

4. 通过自动机器学习进行优化

进化深度学习提供了一组用于自动 DL 系统优化的工具,以获得更加鲁棒的模型。因此,它可以被视为 AutoML 工具。自动机器学习 (Automated Machine Learning , AML) 和 AutoML 通常被认为是等价的,它们具有相同的目的,但前者通常用于描述产生优化模型的黑盒系统。

4.1 自动机器学习简介

自动机器学习是用于自动化和增强 AI/ML 构建的工具,它不是特定的技术,而是一组方法和策略,其中进化算法或进化优化方法是其子集,可以在整个 AI/ML 工作流程中使用,如下图所示。

模型训练

上图展示了构建良好模型的典型 AI/ML 工作流程,以便对新数据进行推断。这一工作流程通常由 AI/ML 研究者手动完成,但已经有各种尝试自动化所有步骤的方法。接下来,我们详细总结每一步骤,包括如何使用 AML 进行自动化:

  • 数据准备:为 AI/ML 训练准备数据相当耗时。一般来说,自动化数据准备能够大幅提高用于微调复杂模型的数据工作流的性能。AutoML 在线服务通常假设用户已经准备并清洗了数据,这是大多数 ML 模型所需进行的步骤,使用进化方法可以自动化数据准备
  • 特征工程:使用领域知识从数据中提取相关特征的过程,通常由领域专家根据直觉和经验选择相关特征,自动化此过程可以降低成本并提高标准化水平。有些 AutoML 工具内置了特征工程
  • 模型选择:随着 AI/ML 的发展,通常可以解决类似问题的模型已经达到数百种。研究人员会花费几天或几周的时间来选择一组要进一步评估的模型,自动化模型选择过程可以加快模型开发,并帮助确认他们适合当前任务的正确模型。一个优秀的 AutoML 工具能够从几十种或几百种模型中进行选择,包括 DL 变体或模型集成
  • 模型架构:在 AI/ML 和深度学习领域,定义正确的模型架构通常是至关重要的。以自动化方式正确完成这一步骤可以节省大量调整架构和重新运行模型的时间。根据具体实现,一些 AutoML 系统会在模型架构上有所不同,但通常局限于经典模型的变体
  • 超参数微调:微调模型超参数的过程十分耗时且容易出错。为了解决这些问题,多数研究人员依赖于直觉和以往的经验,但日益增加的模型复杂性使得仅通过人工调整变得不可行。通过自动化超参数调整,不仅可以减轻模型构建的工作,还可以发现模型选择或架构中的潜在缺陷
  • 模型验证:有多种选项用于评估模型的性能,涵盖了从用于训练和测试数据量到可视化模型输出性能的各个方面。自动验证模型提供了在数据发生变化时重新表征模型性能的强大手段,并使模型在长期内更具解释性

经典的 AML/AutoML 工作流程只涉及处理特征工程步骤及其后续步骤,这个过程通常是迭代进行的,可以是单个步骤或多个步骤进行组合。某些步骤,例如超参数调优,是特定于模型类型的,在 DL 中可能需要大量时间来优化模型。
虽然商业 AutoML 服务能够成功处理各种数据类型和形式,但生成的模型缺乏创新性,并且为了构建一个调整好的模型,AutoML 需要执行大量的任务,需要大量算力,而开发的模型本质上是经典基准模型的重建,往往缺乏新的优化模式。
想要获得更具创新性的自动化模型,通常需要开发自己的 AutoML 解决方案,其中 EDL 是一个主要候选方案,进化方法可以提供各种自动构建和优化 DL 模型、超参数、特征工程和网络架构的解决方案。

4.2 AutoML 工具

常用的 AutoML 工具和平台如下:

  • DataRobotAutoML 的第一个平台,提供了各种自动构建模型的工具
  • Google Cloud AutoML:由 AI 领域的主要参与者构建,该平台可以处理各种数据,从图像到结构化数据
  • Amazon SageMaker AutoPilot:适用于自动化开发依赖于结构化数据的模型
  • H2O AutoML:提供了各种功能来自动化机器学习工作流程
  • Azure Machine Learning:提供了在不同形式的数据上调整模型的自动化过程
  • AutoKeras:提供了网络架构的自动化开发
  • AutoTorch:提供了自动架构搜索

5. 进化深度学习应用

接下来,我们介绍如何在 DL 之上应用像遗传算法 (Genetic Algorithms, GA) 这样的方法来改进 AI 模型。可能有无数种合并 ECDL 的可能性,我们首先需要了解一些基本的实用策略。
了解这些策略将使我们能够修改现有的 DL 网络或创建自己的组合 EC/DL 模型,能够在更短的时间内使用更少的资源创建优化网络,为我们提供选择策略甚至开发新策略的能力。
可以采用多种形式在 DL 中应用 EC,包含各种在 AutoML 中的自动化策略。下图展示了可以应用于 DLECEDL 的各种方法,以及它们可以在 AI/ML 模型开发工作流程中的哪些位置应用。

进化深度学习应用

5.1 模型选择:权重搜索

通常,我们所选择的基础模型和层类型取决于所要解决的问题类型。在大多数情况下,优化模型选择可以快速手动完成。然而,模型选择不仅仅是选择层类型;它还包括优化架构、初始权重和用于训练模型的损失函数。通过优化模型层类型、架构甚至损失函数,可以使网络更具鲁棒性,更高效地学习。

5.2 模型架构:架构优化

在构建 DL 网络时,我们通常会在模型中添加过多的节点和层。随着训练的进行,我们会缩小网络,使其更适合解决问题。在多数情况下,过大的网络可能会“记住”输入数据,而导致过拟合。相反,过小的网络无法学习足够多样的数据,通常会出现欠拟合的情况。
为了解决过度拟合和欠拟合问题,我们可以应用 GA 自动修剪网络至最小形态。这不仅可以提高模型性能并限制过度训练或欠拟合,还可以通过减小网络大小来减少训练时间。这是一种在尝试优化更大、更深的网络时非常有效的技术。

5.3 超参数调整/优化

超参数调整是 AIML 中的一个过程,通过调整定义模型的各种控制变量来优化模型。在 DL 中,参数用于表示模型的权重,为了表示区分,我们将控制变量称为超参数。
EC 提供了多种算法,在包括 DL 在内的各种模型中添加自动超参数优化,包括粒子群优化、差分进化和遗传算法。

5.4 验证和损失函数优化

在开发强大的 DL 模型时,我们经常依靠几种已有的模式来生成高质量的网络,包括通过迭代地观察训练和测试损失来验证模型的训练和性能,为了保证性能,我们希望两个损失值不会相差太远。
在监督学习训练中,我们通常会使用与标签比较相关的度量方法。而对于生成DL模型甚至需要优化损失函数或者模型性能验证函数。
在自动编码器、嵌入层和生成对抗网络之类的网络中,可以使用组合决策来进行损失和模型验证。使用 EC,我们能够以 AutoML 的方式优化这些形式的网络。

5.5 增强拓扑的神经进化

增强拓扑的神经进化 (Neuroevolution of Augmenting Topologies, NEAT) 是一种将超参数和架构优化与权重搜索相结合的技术,能够自动构建新的DL模型,也可以优化损失和验证方法,这种技术已经被应用于各种 DL 和深度强化学习的应用中。

小结

深度学习 ( Deep learning, DL) 是一种强大的技术,能够解决许多人工智能和机器学习任务,但它通常需要大量的数据,并且开发、训练和优化成本高昂。
进化计算 (Evolutionary Computation, EC) 是人工智能和机器学习的一个子领域,其理论基础是自然选择。虽然 EC 的发展速度不及 DL 快,但它提供了解决各种复杂问题的技术。
进化深度学习 (Evolutionary Deep Learning, EDL) 包括一系列将进化方法与 DL 相结合的技术。包括神经进化、进化超参数优化和增强拓扑的神经进化。EDL 定义了 EC 方法的一个子集,可以用于在机器学习的多个阶段自动化和改进 DL 模型的开发。
自动机器学习 (Automated Machine Learning , AML) 和 AutoML 定义了一套工具和技术,旨在自动化整个人工智能和机器学习模型的开发工作流程。大量商业公司开发多种 AutoML 平台,以帮助用户根据需求构建强大的模型。

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

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

相关文章

【mybatis的批量操作】

在日常开发中,如果要操作数据库的话,或多或少都会遇到批量数据的处理,我们公司使用的mybaits-plus作为持久层的框架,今天就简单介绍一下mybaits批量操作数据库的几种方式。 1.循环插入 其实这种方式并不是批量插入,只…

功能实现——使用 OpenPDF 将 HTML 转换为 PDF,并将其上传到 FTP 服务器

目录 1.需求分析2.项目环境搭建3.将 HTML 转换为 PDF3.1.代码实现mail.htmlHtmlToPDFController.javaPDFConverterService.javaPDFConverterServiceImpl.java 3.2.测试3.3.注意事项 4.将生成的 PDF 上传到 FTP 服务器4.1.搭建 FTP 服务器4.2.配置文件4.3.代码实现FtpUtil.javaF…

谷粒商城实战笔记-75-商品服务-API-品牌管理-品牌分类关联与级联更新

文章目录 一,引入Mybatis Plus分页插件二,品牌列表的模糊查询三,增加品牌测试数据四,开发后台品牌关联分类接口1,接口product/categorybrandrelation/catelog/list2,接口product/categorybrandrelation/sav…

汽车长翅膀:GPU 是如何加速深度学习模型的训练和推理过程的?

编者按:深度学习的飞速发展离不开硬件技术的突破,而 GPU 的崛起无疑是其中最大的推力之一。但你是否曾好奇过,为何一行简单的“.to(‘cuda’)”代码就能让模型的训练速度突飞猛进?本文正是为解答这个疑问而作。 作者以独特的视角&…

数仓架构解析(第45天)

系列文章目录 经典数仓架构传统离线大数据架构 文章目录 系列文章目录烂橙子-终生成长群群主前言1. 经典数仓架构2. 传统离线大数据架构 烂橙子-终生成长群群主 前言 经典数仓架构 传统离线大数据架构 背景解析 1. 经典数仓架构 1991年,比尔恩门(Bill…

牛客算法题解:数字统计、两个数组的交集、点击消除

目录 BC153 [NOIP2010]数字统计 ▐ 题解 NC313 两个数组的交集 ▐ 题解 AB5 点击消除 ▐ 题解 BC153 [NOIP2010]数字统计 题目描述: 题目链接: [NOIP2010]数字统计_牛客题霸_牛客网 (nowcoder.com) ▐ 题解 题目要求统计出某段数组中一共有多少个…

关于Buffer和Channel的注意事项和细节

1.举例 package org.example.demo;import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.RandomAccess;/*** MappedByteBuffer可…

动量参数(Momentum Parameter)

动量参数(Momentum Parameter)在机器学习中指的是一种用于加速梯度下降算法的技术,特别是深度学习中优化神经网络权重时。简单来说,动量参数是一种帮助优化过程加速并减少震荡的技术。 具体来说,动量参数具有以下特点…

网络编程——wireshark抓包、tcp粘包

目录 一、前言 1.1 什么是粘包 1.2 为什么UDP不会粘包 二、编写程序 文件树 客户端程序 服务器程序 tcp程序 头文件 makefile 三、 实验现象 四、改进实验 五、小作业 一、前言 最近在做网络芯片的驱动,验证功能的时候需要借助wireshark这个工具&…

猫头虎分享:Numpy知识点一文带你详细学习np.random.randn()

🐯 猫头虎分享:Numpy知识点一文带你详细学习np.random.randn() 摘要 Numpy 是数据科学和机器学习领域中不可或缺的工具。在本篇文章中,我们将深入探讨 np.random.randn(),一个用于生成标准正态分布的强大函数。通过详细的代码示…

Android Studio 一键删除 Recent Projects信息的方法

Android Studio打开项目多了就一堆最近项目的记录,在IDE里面只能一个个手动删除。 File - Recent Projects 解决方案:修改配置文件 Note:方法不唯一。 Android Studio 存储了一个包含最近打开项目信息的配置文件。通过手动编辑或删除recentP…

科普文:kubernets原理

kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes ,了解我们谈论 kubernetes 都是在谈论什么。 一、背…

详细介绍BIO、NIO、IO多路复用(select、poll、epoll)

BIO、NIO、IO多路复用 BIO(Blocking IO)NIO(Non-blocking IO) 同步非阻塞IOIO多路复用selectpollepoll Redis的IO多路复用 BIO(Blocking IO) 最基础的IO模型,当进行IO操作时,线程会被阻塞,直到操作完成。 比如read和write,通常IO…

Python的输入规则

Python的输入特别有意思,它和C的输入不一样,它的输入的原型是类似于C的string类型,但是对于一些有意思的算法题来说,光是读入string型的内容并不容易解题,于是我们可以从两个方面来将输入给转化。 1. 先使用函数input…

SGLang 大模型推理框架 qwen2部署使用案例;openai接口调用、requests调用

参考: https://github.com/sgl-project/sglang 纯python写,号称比vllm、tensorRT还快 暂时支持模型 安装 可以pip、源码、docker安装,这里用的pip 注意flashinfer安装最新版,不然会可能出错误ImportError: cannot import name ‘top_k_top_p_sampling_from_probs’ fr…

EtherNet/IP转Profinet协议网关(经典配置案例)

怎么样才能把EtherNet/IP和Profinet网络连接起来呢?这几天有几个朋友问到了这个问题,作者在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题,名为JM-PN-EIP,下面是详细介绍。 一,设备主要功能 1、捷米特J…

nodepad++已打开的文件怎么按照字母/文字顺序排列?

nodepad已打开的文件怎么按照字母/文字顺序排列? 点击菜单栏 “窗口” -> “排序方式” (可选择升序或降序)

加密货币赋能跨境电商:PayPal供应链金融服务如何引领行业新趋势

跨境电商行业近年来呈现出爆发式增长,随着全球化贸易壁垒的降低和数字经济的快速发展,越来越多的商家和消费者跨越国界进行交易。根据eMarketer的数据,全球跨境电商交易额在2023年已超过4万亿美元,并预计在未来几年内仍将保持两位…

centos7 xtrabackup mysql(8)增量备份(1)

centos7 xtrabackup mysql(8)增量备份(1) 参考 xtrabackup-8.0的安装、备份以及恢复(innoxtrabackup有待测试) https://blog.csdn.net/DWJRIVER/article/details/117792271 https://blog.csdn.net/qq_28…

开发环境搭建——Tomcat安装配置

一、Tomcat安装 1、解压下载好的安装包,将解压后的文件放到任意一个盘中,注意,尽量不要有中文 2、运行Tomcat,测试Tomcat是否正常连接使用 双击bin目录下的startup.bat文件,启动Tomcat 出现下面的界面标识Tomcat启动…