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

learning ray之ray核心设计和架构

我们每天都在处理海量、多样且高速生成的数据,这对计算能力提出了前所未有的挑战。传统的单机计算模式在面对日益复杂的机器学习模型和大规模数据集时,往往显得力不从心。更重要的是,数据科学家们本应专注于模型训练、特征工程、超参数调优这些核心任务,而不是被繁琐的底层计算细节所困扰。因此,我们需要一种能够高效、灵活地将计算任务扩展到集群,并且易于使用的分布式计算框架,来解放数据科学家的创造力。

过去十年,我们见证了大数据技术的蓬勃发展,比如 Hadoop、Spark 等。这些技术极大地提升了数据存储和处理的能力,对于许多公司的成功至关重要。但有趣的是,这些技术大多是由数据工程师构建和维护的,它们主要服务于数据收集和处理流程。其初衷是好的,希望解放数据科学家,让他们专注于模型本身。然而,现实情况是,数据科学家们往往需要一套更贴近他们工作流程的工具。他们需要的不仅仅是强大的数据存储和处理能力,还需要能够高效地进行模型训练、超参数优化、甚至构建全新的模型或模拟。

现有的通用大数据框架,虽然强大,但有时显得过于底层和复杂,难以直接满足这些特定的需求。这就好比,我们有了强大的引擎,但还需要一个能直接驱动我们业务应用的变速箱。这就是 Ray 登场的背景。

Ray 是一款专门为 Python 数据科学社区打造的灵活分布式计算框架。它试图解决我们刚才提到的痛点。Ray 的核心理念是易用性,它的 API 设计非常简洁,让你能够快速上手。更重要的是,它强调灵活性。无论是处理大规模数据集,还是运行复杂的机器学习模型,甚至是需要利用 GPU 等异构硬件的场景,Ray 都能提供支持。它不仅要快,还要足够快,能够满足实时性要求。

同时,Ray 并非要取代现有的一切,而是致力于与你已有的大数据工具链无缝集成,比如 Spark、Dask 等,让你在享受分布式计算红利的同时,不必丢弃你熟悉的工具箱。Ray 的核心优势之一,就是它践行了简单的事情简单做 的原则。它的核心 API 设计得非常精简,让你能够清晰地理解分布式程序的运作方式。最酷的是,你可以在自己的笔记本电脑上编写并行化的 Python 代码,然后几乎无需改动,就能直接运行到一个强大的计算集群上。这极大地降低了分布式开发的门槛。

Ray 的高层库,比如我们后面会提到的 Rllib、Tune 等,配置起来也很方便,而且它们之间可以无缝协作。虽然 Ray 的底层是用 C++ 实现的,以保证性能,但它从一开始就坚持 Python First,所有的高层库和功能开发都是围绕 Python 社区的需求来驱动的,这使得它对 Python 数据科学家来说非常友好。Ray 的真正价值在于它的组合拳效应。它不是单一功能的工具,而是一个模块化的生态系统。你可以将 Ray 的不同组件组合起来,比如用 Rllib 训练模型,再用 Tune 进行超参数调优,最后用 Serve 部署模型。这种组合能力使得 Ray 能够处理那些用传统方法难以实现的复杂机器学习工作负载。它让你能够灵活地利用你熟悉的 Python 工具,去构建和运行大规模的 AI 应用。

可以说,学习 Ray,就是学习如何用 Python 来构建分布式机器学习系统。

这本书的目的,就是带大家一步步掌握 Ray 的精髓,解锁这种强大的分布式 Python 能力。Ray 的设计理念深受几个核心原则的指导。首先是 简单与抽象。Ray 的 API 设计得非常直观,易于理解和学习。无论你是在利用笔记本电脑的多核 CPU,还是在管理一个庞大的集群,使用的 Ray 代码逻辑几乎保持一致。这背后是 Ray 在幕后默默处理了任务的分配和协调,让你无需关心底层的分布式细节。这种强大的抽象层,让你能够专注于你的业务逻辑,而不是被分布式计算的复杂性所淹没。同时,Ray 的 API 非常 Pythonic,这使得它成为一个优秀的 胶水代码,可以轻松地将 Ray 与现有的分布式 Python 工作负载集成起来,无论是调用其他系统,还是被其他系统调用,都非常方便。第二个核心原则是 灵活性与异构性。

对于 AI 工作负载,特别是像强化学习这样复杂的任务,你需要一个非常灵活的编程模型。Ray 的 API 设计就是为了让你能够轻松编写灵活且可组合的代码。简单来说,只要你能在 Python 中表达出来,你就能用 Ray 将其分布式执行。当然,你需要确保资源充足,并且知道你想分布的是什么。但 Ray 不会限制你的创造力。Ray 对于异构计算也表现出色。比如,一个复杂的模拟任务可能包含耗时数小时的任务和毫秒级的任务,Ray 能够高效地调度它们。它还支持动态执行,处理任务之间的依赖关系,允许小任务在大任务运行的同时并行执行,而不会阻塞。

此外,Ray 还能很好地利用异构硬件,比如某些任务需要 GPU 加速,而另一些任务可能更适合 CPU,Ray 都能提供相应的灵活性。第三个关键原则是 速度与可扩展性。Ray 的目标是实现极高的任务执行速度。它每秒可以处理数百万个任务,并且具有极低的延迟。这得益于它高效的任务调度机制,能够快速地将任务分配到集群的各个节点上。同时,Ray 在设计上就考虑了容错性,即使在分布式环境中出现故障,比如某个节点宕机,Ray 也能快速恢复,保证整个系统的稳定性和持续运行。更进一步,Ray 还支持自动伸缩,可以根据当前工作负载的需求动态地增加或减少集群中的节点数量,这不仅有助于降低成本,还能确保集群始终拥有足够的资源来处理任务。这种速度和可扩展性的结合,使得 Ray 在处理大规模、实时性要求高的任务时非常有竞争力。

现在,让我们从宏观层面看看 Ray 的整体架构。我们可以将其理解为三层结构。最底层是 Ray Core,这是整个框架的核心,它提供了一个底层的分布式计算框架,包括核心的 API 和用于集群部署和管理的工具。第二层是高层库,这里主要是指由 Ray 团队开发和维护的那些专门用于数据科学的库,比如我们后面会讲到的 Rllib、Tune、Serve 等,它们通常会通过一个统一的接口,比如 Ray AIR,来整合使用。最顶层是不断扩展的生态系统,它包含了各种第三方集成和扩展,这些扩展了 Ray 的功能,使其能够更好地适应各种不同的应用场景。

你可以想象,Ray Core 是地基,高层库是建筑,而生态系统则是不断丰富和扩展的周边设施。

Ray Core

我们先来看最基础的 Ray Core。它本质上就是一个分布式计算框架。它管理着一个由多台计算机组成的集群,这些计算机通过网络连接起来。集群中有头节点,负责运行你的程序 Driver 和一部分 Worker 进程,还有若干工作节点,主要负责执行任务 Worker 进程。

有趣的是,Ray Cluster 不仅可以是跨多台机器的集群,也可以是单台机器上的本地集群。在这种情况下,你自己的电脑就是头节点,同时运行着 Driver 和 Worker 进程。启动一个 Ray 集群非常简单,只需要一行代码:ray.init。这个 init 函数就是 Ray Core API 的核心调用之一,它会启动你的 Ray 集群,无论是本地还是远程。

Ray Core API 提供了构建分布式应用的基础能力,虽然它相对底层,但它非常强大,是构建 Ray 各种高级功能的基础。

高层库

接下来,我们进入 Ray 的第二层:高层库。这里最核心的概念就是 Ray AI Runtime,简称 Ray AIR。它就像一个大伞,把 Ray 的各个数据科学库整合起来,提供了一个统一的 API 接口,让你在处理数据科学工作流程时,能够享受到一致的体验。Ray AIR 的目标是覆盖从数据处理到模型训练、超参数调优、再到模型部署的完整流程。

具体来说,Ray 提供了几个关键的高层库:

  • Ray Datasets 用于高效的数据处理
  • Ray Train 用于分布式模型训练
  • Ray RLlib 是一个强大的强化学习库
  • Ray Tune 专门用于加速超参数搜索
  • Ray Serve 则负责将训练好的模型部署为服务。

这些库都是基于 Ray Core 构建的,它们充分利用了底层的分布式能力,同时又提供了高层的抽象和易用性。我们先来看 Ray Datasets。它提供了一个名为 Dataset 的数据结构,专门用于分布式数据处理。Ray Datasets 的核心是基于 Arrow 框架,这使得它在数据传输和处理方面非常高效。它提供了丰富的数据加载器,可以轻松从各种常见的格式和数据源中读取数据。对于数据转换,Ray Datasets 提供了一套非常直观的函数式 API,比如 map、filter、flat_map。这些 API 非常符合 Python 的风格,让你能够像流水线一样处理数据。比如,你可以用 map 对每个数据点进行变换,用 filter 过滤掉不需要的数据,用 flat_map 将列表展开。更进一步,Ray Datasets 还支持 DatasetPipeline,它允许你构建异步执行的数据处理流水线,这样可以重叠执行不同的步骤,从而显著提升性能,尤其是在处理大规模数据时。

对于模型训练,Ray 提供了两个主要的库:Ray Train 和 Ray RLlib。Ray Train 是一个通用的分布式模型训练框架,它主要面向监督学习等场景,能够利用 Ray 的分布式能力来加速模型训练过程。它与 TensorFlow 和 PyTorch 紧密集成,你可以选择使用你熟悉的框架。Ray RLlib 则专注于强化学习领域。它提供了一个强大的强化学习库,支持包括 PPO 在内的多种先进算法,并且可以很好地与 OpenAI Gym 等标准环境配合使用。Ray RLlib 还提供了一个名为 rllib 的命令行工具,让你可以非常方便地运行预配置好的强化学习示例,比如经典的 CartPole 平衡杆问题。这大大降低了入门和实验的门槛。超参数优化是机器学习中一个耗时且关键的环节。

Ray Tune 就是专门为解决这个问题而设计的。它是一个强大的超参数优化库,能够自动帮你找到模型的最佳超参数。Tune 支持多种优化算法,比如网格搜索、随机搜索、贝叶斯优化等,你可以根据你的任务和预算选择合适的策略。Tune 的核心优势在于并行执行。它能够将多个超参数组合的训练任务同时运行,极大地加速了搜索过程。想象一下,如果每个训练组合需要花费数小时,用串行搜索可能需要几天甚至几周,而 Tune 可以通过并行执行,将时间缩短到几小时甚至几分钟。此外,Tune 还提供了强大的实验管理功能,能够自动跟踪和管理实验结果,方便你进行分析和比较。

最后,我们来看 Ray Serve。这个库的作用是将你训练好的模型部署成一个可以被外部调用的服务。Ray Serve 的核心是提供一个 HTTP 接口,让客户端可以通过发送 HTTP 请求来调用你的模型。这使得模型的部署非常便捷,用户无需关心底层的实现细节。Ray Serve 还支持弹性伸缩,可以根据请求量的大小自动增加或减少模型的实例,从而保证服务的性能和响应速度。同时,它还提供了模型版本管理功能,可以方便地进行 A/B 测试,或者在新旧模型之间切换。Ray Serve 的目标是让你能够高效、可靠地将模型部署到生产环境中,真正实现模型的价值。

生态系统

除了 Ray 自身提供的核心库和 AIR,它还有一个非常活跃的生态系统。这个生态系统是 Ray 价值的重要组成部分。Ray 非常注重与现有工具的集成,比如它可以与 Spark、Dask、TensorFlow、PyTorch 等等广泛使用的数据处理和机器学习框架协同工作。这意味着你可以将 Ray 的分布式计算能力与这些工具的特定功能结合起来。同时,Ray 社区也在不断涌现出各种第三方库,进一步扩展了 Ray 的功能边界。

Ray 的开放性也吸引了大量的开发者贡献代码和想法。这种持续的生态发展和社区活跃,使得 Ray 不仅是一个强大的工具,更是一个充满活力的平台。

让我们快速总结一下 Ray 的三层架构。

  • 最底层是 Ray Core,它提供了强大的分布式计算引擎,是整个框架的基础。
  • 中间层是高层库,特别是 Ray AIR,它通过统一的 API 整合了 Ray 的各种核心功能,比如数据处理、模型训练、超参数调优、模型部署等,极大地简化了数据科学家的工作流程。
  • 最外层是不断扩展的生态系统,它通过各种集成和扩展,进一步丰富了 Ray 的应用场景。

Ray 的核心价值在于,它通过简洁的 API、强大的分布式能力、以及灵活的生态系统,极大地降低了分布式计算的门槛,让开发者能够更专注于业务逻辑本身,从而提升效率,扩展可能性,最终推动数据科学和人工智能应用的边界。

相关文章:

learning ray之ray核心设计和架构

我们每天都在处理海量、多样且高速生成的数据,这对计算能力提出了前所未有的挑战。传统的单机计算模式在面对日益复杂的机器学习模型和大规模数据集时,往往显得力不从心。更重要的是,数据科学家们本应专注于模型训练、特征工程、超参数调优这…...

深入理解 JavaScript 对象与属性控制

ECMA-262将对象定义为一组属性的无序集合,严格来说,这意味着对象就是一组没有特定顺序的值,对象的每个属性或方法都由一个名称来标识,这个名称映射到一个值. 可以把js的对象想象成一张散列表,其中的内容就是一组名/值对,值可以是数据或者函数 1. 理解对象 创建自定义对象的…...

深入理解 Linux 虚拟文件系统(VFS)

在 Linux 操作系统的世界里,虚拟文件系统(Virtual File System,VFS)扮演着极为关键的角色。它就像是一座桥梁,连接着各种不同类型的物理文件系统与操作系统以及应用程序,使得我们在使用 Linux 时能够以统一…...

AI云防护真的可以防攻击?你的服务器用群联AI云防护吗?

1. 传统防御方案的局限性 静态规则缺陷:无法应对新型攻击模式(如HTTP慢速攻击)资源浪费:固定带宽采购导致非攻击期资源闲置 2. AI云防护技术实现 动态流量调度算法: # 智能节点选择伪代码(参考群联防护…...

计算机视觉——MedSAM2医学影像一键实现3D与视频分割的高效解决方案

引言 在乡村医院的傍晚高峰时段,扫描室内传来阵阵低沉的嗡鸣声,仿佛一台老旧冰箱的运转声。一位疲惫的医生正全神贯注地检查着当天的最后一位患者——一位不幸从拖拉机上摔下的农民,此刻正呼吸急促。CT 机器飞速旋转,生成了超过一…...

软件工程之软件项目管理深度解析

前文基础: 1.软件工程学概述:软件工程学概述-CSDN博客 2.软件过程深度解析:软件过程深度解析-CSDN博客 3.软件工程之需求分析涉及的图与工具:软件工程之需求分析涉及的图与工具-CSDN博客 4.软件工程之形式化说明技术深度解…...

40. 组合总和 II

题目 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates [10,1…...

java-多态

一、多态的来历 我们先来了解一个业务场景:请设计一个系统,描述主人喂养宠物的场景,首先在这个场景当中应该有”宠物对象“,“宠物对象”应该有一个吃的行为,另外还需要一个“主人对象”,主人应该有一个喂的…...

重构 cluster-db 选择器,新增限制字段 showDb 不影响原功能前提实现查询功能增量拓展

1.为DbSelect组件新添加showDb字段 :show-db"false"时只显示集群不显示数据库信息 重构 cluster-db 选择器&#xff0c;新增限制字段 showDb 不影响原功能前提实现查询功能增量拓展,。保证组件**高可用性,减少冗余方法的编写,提高整体代码复用性和维护性**。 <!-…...

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

文章目录 前言一、Modbus RTU1.1 通信方式1.2 模式特点1.3 数据模型1.4 常用功能码说明1.5 异常响应码1.6 通信帧格式1.6.1 示例一&#xff1a;读取保持寄存器&#xff08;功能码 0x03&#xff09;1.6.2 示例二&#xff1a;写单个线圈&#xff08;功能码 0x05&#xff09;1.6.3…...

新闻发稿筛选媒体核心标准:影响力、适配性与合规性

1. 评估媒体影响力 权威性与公信力&#xff1a;优先选择央级媒体&#xff0c;其报道常被其他平台转载&#xff0c;传播链条长&#xff0c;加分权重高。 传播数据&#xff1a;参考定海区融媒体中心的赋分办法&#xff0c;关注媒体的阅读量、视频播放量等指标&#xff0c;如阅读…...

豆包:基于多模态交互的智能心理咨询机器人系统设计与效果评估——情感计算框架下的对话机制创新

豆包:基于多模态交互的智能心理咨询机器人系统设计与效果评估——情感计算框架下的对话机制创新 摘要 随着人工智能在心理健康领域的应用深化,本文提出一种融合情感计算与动态对话管理的智能心理咨询机器人系统架构。通过构建“用户状态-情感响应-策略生成”三层模型,结合…...

坐席业绩可视化分析工具

这个交互式的坐席业绩分析工具具有以下特点&#xff1a; 数据导入功能&#xff1a;支持上传 CSV 文件&#xff0c;自动解析并展示数据多维度分析&#xff1a;可按日 / 周 / 月分析业绩数据&#xff0c;支持切换不同业绩指标&#xff08;接通时长 / 外呼次数 / 接通次数&#x…...

MATLAB制作柱状图与条图:数据可视化的基础利器

一、什么是柱状图与条图&#xff1f; 柱状图和条图都是用来表示分类数据的常见图表形式&#xff0c;它们的核心目的是通过矩形的长度来比较各类别的数值大小。条图其实就是“横着的柱状图”&#xff0c;它们的本质是一样的&#xff1a;用矩形的长度表示数值大小&#xff0c;不同…...

com.fasterxml.jackson.dataformat.xml.XmlMapper把对象转换xml格式,属性放到标签<>里边

之前从没用过xml和对象相互转换&#xff0c;最近项目接了政府相关的。需要用xml格式数据进行相互转换。有些小问题&#xff0c;困扰了我一下下。 1.有些属性需要放到标签里边&#xff0c;有的需要放到标签子集。 2.xml需要加<?xml version"1.0" encoding"…...

在js中大量接口调用并发批量请求处理器

并发批量请求处理器 ✨ 设计目标 该类用于批量异步请求处理&#xff0c;支持&#xff1a; 自定义并发数请求节拍控制&#xff08;延时&#xff09;失败重试机制进度回调通知 &#x1f527; 构造函数参数 new BulkRequestHandler({dataList, // 要处理的数据列表r…...

Azure资源创建与部署指南

本文将指导您如何在Azure平台上创建和配置必要的资源,以部署基于OpenAI的应用程序。 资源组创建 资源组是管理和组织Azure资源的逻辑容器。 在Azure门户顶端的查询框中输入"Resource groups"(英文环境)或"资源组"(中文环境)在搜索结果中点击"资…...

图解gpt之神经概率语言模型与循环神经网络

上节课我们聊了词向量表示&#xff0c;像Word2Vec这样的模型&#xff0c;它确实能捕捉到词语之间的语义关系&#xff0c;但问题在于&#xff0c;它本质上还是在孤立地看待每个词。英文的“Apple”&#xff0c;可以指苹果公司&#xff0c;也可以指水果。这种一词多义的特性&…...

Jenkins linux安装

jenkins启动 service jenkins start 重启 service jenkins restart 停止 service jenkins stop jenkins安装 命令切换到自己的下载目录 直接用命令下载 wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm 下载直接安装 rpm -ivh jenkins-2.190.3-…...

android 修改单GPS,单北斗,单伽利略等

从hal层入手&#xff0c;代码如下&#xff1a; 各个类型如下&#xff1a; typedef enum {MTK_CONFIG_GPS_GLONASS 0,MTK_CONFIG_GPS_BEIDOU,MTK_CONFIG_GPS_GLONASS_BEIDOU,MTK_CONFIG_GPS_ONLY,MTK_CONFIG_BEIDOU_ONLY,MTK_CONFIG_GLONASS_ONLY,MTK_CONFIG_GPS_GLONASS_BEIDO…...

CNG汽车加气站操作工岗位职责

CNG&#xff08;压缩天然气&#xff09;汽车加气站操作工是负责天然气加气设备操作、维护及安全管理的重要岗位。以下是该岗位的职责、技能要求、安全注意事项及职业发展方向的详细说明&#xff1a; *主要职责 加气操作 按照规程为车辆加注CNG&#xff0c;检查车辆气瓶合格证…...

纯Java实现反向传播算法:零依赖神经网络实战

在深度学习框架泛滥的今天&#xff0c;理解算法底层实现变得愈发重要。反向传播(Backpropagation)作为神经网络训练的基石算法&#xff0c;其实现往往被各种框架封装。本文将突破常规&#xff0c;仅用Java标准库实现完整BP算法&#xff0c;帮助开发者&#xff1a; 1) 深入理解…...

springboot3 + mybatis-plus3 创建web项目实现表增删改查

Idea创建项目 环境配置说明 在现代化的企业级应用开发中&#xff0c;合适的开发环境配置能够极大提升开发效率和应用性能。本文介绍的环境配置为&#xff1a; 操作系统&#xff1a;Windows 11JDK&#xff1a;JDK 21Maven&#xff1a;Maven 3.9.xIDE&#xff1a;IntelliJ IDEA…...

多模型协同预测在风机故障预测的应用(demo)

数据加载和预处理的真实性&#xff1a; 下面的代码中&#xff0c;DummyDataset 和数据加载部分仍然是高度简化和占位的。为了让这个训练循环真正有效&#xff0c;您必须用您自己的数据加载逻辑替换它。这意味着您需要创建一个 torch.utils.data.Dataset 的子类&#xff0c;它能…...

韩媒聚焦Lazarus攻击手段升级,CertiK联创顾荣辉详解应对之道

近日&#xff0c;韩国知名科技媒体《韩国IT时报》&#xff08;Korea IT Times&#xff09;刊文引述了CertiK联合创始人兼CEO顾荣辉教授的专业见解&#xff0c;聚焦黑客组织Lazarus在Web3.0领域攻击手段的持续升级&#xff0c;分析这一威胁的严峻性&#xff0c;并探讨了提升行业…...

5.9-selcct_poll_epoll 和 reactor 的模拟实现

5.9-select_poll_epoll 本文演示 select 等 io 多路复用函数的应用方法&#xff0c;函数具体介绍可以参考我过去写的博客。 先绑定监听的文件描述符 int sockfd socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serveraddr; memset(&serveraddr, 0, sizeof(struc…...

图上思维:基于知识图的大型语言模型的深层可靠推理

摘要 尽管大型语言模型&#xff08;LLM&#xff09;在各种任务中取得了巨大的成功&#xff0c;但它们经常与幻觉问题作斗争&#xff0c;特别是在需要深入和负责任的推理的场景中。这些问题可以通过在LLM推理中引入外部知识图&#xff08;KG&#xff09;来部分解决。在本文中&am…...

37-智慧医疗服务平台(在线接诊/问诊)

系统功能特点&#xff1a; 技术栈: springBootVueMysql 功能点: 医生端 用户端 管理员端 医生端: 科室信息管理、在线挂号管理、预约体检管理、体检报告管理、药品信息管理、处方信息管理、缴费信息管理、病历信息管理、智能导诊管理、在线接诊患者功能 (和患者1V1沟通) 用户…...

【新品发布】VXI可重构信号处理系统模块系列

VXI可重构信号处理系统模块概述 VXI可重构信号处理系统模块包括了 GPU 模块&#xff0c;CPU 模块&#xff0c;射频模块、IO 模块、DSP模块、高速存储模块、交换模块&#xff0c;采集处理模块、回放处理模块等&#xff0c;全套组件为单体3U VPX架构&#xff0c;可自由组合到多槽…...

React 第三十八节 Router 中useRoutes 的使用详解及注意事项

前言 useRoutes 是 React Router v6 引入的一个钩子函数&#xff0c;允许通过 JavaScript 对象&#xff08;而非传统的 JSX 语法&#xff09;定义路由配置。这种方式更适合复杂路由结构&#xff0c;且代码更简洁易维护。 一、基础使用 1.1、useRoutes路由配置对象 useRoute…...

Redhat 系统详解

Red Hat 系统深度解析&#xff1a;从企业级架构到核心组件 一、Red Hat 概述&#xff1a;企业级 Linux 的标杆 Red Hat 是全球领先的开源解决方案供应商&#xff0c;其核心产品 Red Hat Enterprise Linux&#xff08;RHEL&#xff09; 是企业级 Linux 的黄金标准。RHEL 以 稳…...

docker常用命令总结

常用命令含义docker info查看docker 服务的信息-------------------------镜像篇docker pull XXX从官网上拉取名为XXX的镜像docker login -u name登录自己的dockerhub账号docker push XXX将XXX镜像上传到自己的dockerhub账户中&#xff08;XXX的命名必须是用户名/镜像名&#x…...

【el-admin】el-admin关联数据字典

数据字典使用 一、新增数据字典1、新增【图书状态】和【图书类型】数据字典2、编辑字典值 二、代码生成配置1、表单设置2、关联字典3、验证关联数据字典 三、查询操作1、模糊查询2、按类别查询&#xff08;下拉框&#xff09; 四、数据校验 一、新增数据字典 1、新增【图书状态…...

component :is是什么?

问&#xff1a; component &#xff1a;is是什么&#xff1f; 是组件&#xff1f; 那我们是不是就不需要自己创建组件了&#xff1f;还是什么意思&#xff1f;component &#xff1a;is和什么功能是类似的&#xff0c;同时和类似功能相比对什么时候用component &#xff1a;is…...

适老化洗浴辅具产业:在技术迭代与需求升级中重塑银发经济新生态

随着中国人口老龄化程度的不断加深&#xff0c;老年群体对于适老化产品的需求日益增长。 适老化洗浴辅具作为保障老年人洗浴安全与舒适的关键产品&#xff0c;其发展状况备受关注。 深入剖析中国适老化洗浴辅具的发展现状&#xff0c;并探寻助力产业发展的有效路径&#xff0…...

『Python学习笔记』ubuntu解决matplotlit中文乱码的问题!

ubuntu解决matplotlit中文乱码的问题&#xff01; 文章目录 simhei.ttf字体下载链接&#xff1a;http://xiazaiziti.com/210356.html将字体放到合适的地方 sudo cp SimHei.ttf /usr/share/fonts/(base) zkfzkf:~$ fc-list | grep -i "SimHei" /usr/local/share/font…...

从AI到新能源:猎板PCB的HDI技术如何定义高端制造新标准?

2025年&#xff0c;随着AI服务器、新能源汽车、折叠屏设备等新兴领域的爆发式增长&#xff0c;高密度互连&#xff08;HDI&#xff09;电路板成为电子制造业的“必争之地”。HDI板凭借微孔、细线宽和高层间对位精度&#xff0c;能够实现电子设备的高集成化与微型化&#xff0c;…...

汽车制造行业的数字化转型

嘿&#xff0c;大家好&#xff01;今天来和大家聊聊汽车制造行业的数字化转型&#xff0c;这可是当下非常热门的话题哦&#xff01; 随着科技的飞速发展&#xff0c;传统的汽车制造行业正经历着一场深刻的变革。数字化技术已经不再是“锦上添花”&#xff0c;而是车企能否在未…...

Redis 常见数据类型

Redis 常见数据类型 一、基本全局命令详解与实操 1. KEYS 命令 功能&#xff1a;按模式匹配返回所有符合条件的键&#xff08;生产环境慎用&#xff0c;可能导致阻塞&#xff09;。 语法&#xff1a; KEYS pattern 模式规则&#xff1a; h?llo&#xff1a;匹配 hello, ha…...

【计算机网络-传输层】传输层协议-TCP核心机制与可靠性保障

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;传输层协议-UDP 下篇文章&#xff1a; 网络层 我们的讲解顺序是&…...

对golang中CSP的理解

概念&#xff1a; CSP模型&#xff0c;即通信顺序进程模型&#xff0c;是由英国计算机科学家C.A.R. Hoare于1978年提出的。该模型强调进程之间通过通道&#xff08;channel&#xff09;进行通信&#xff0c;并通过消息传递来协调并发执行的进程。CSP模型的核心思想是“不要通过…...

嵌入式openharmony标准系统中HDF框架底层原理分析

1、案例简介 该程序是基于OpenHarmony标准系统编写的基础外设类:简易HDF驱动。 2、基础知识 2.1、OpenHarmony HDF开发简介 HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。旨在构建统一…...

238.除自身以外数组的乘积

给你一个数组&#xff0c;求出第 i 个元素以外的数组元素的乘积&#xff0c;不能使用除法&#xff0c;且时间复杂度O(n), 对于一个数&#xff0c;如果知道了前缀元素的乘积和后缀元素的乘积&#xff0c;就知道了这个元素以外的数组元素的乘积&#xff0c;所以现在的问题是如何…...

AI文旅|暴雨打造旅游新体验

今年"五一"假期&#xff0c;全国文旅市场迎来爆发式增长&#xff0c;从丈崖瀑布的磅礴水雾到城市商区的璀璨霓虹&#xff0c;从山野民宿的静谧悠然到主题乐园的欢腾喧嚣&#xff0c;处处人潮涌动。在这火热的景象背后&#xff0c;一股“无形之力”正悄然改变旅游体验…...

学习心得《How Global AI Policy and Regulations Will Impact Your Enterprise》Gartner

AI时代来临,然而与之对应的是海量的数据的安全性和合规性如何保障,如何平衡个人与智能体的利益,恰巧,最近Gartner发布了《How Global AI Policy and Regulations Will Impact Your Enterprise》,我们就其中的观点一起进行探讨。 战略规划假设 我们首先关注的是关键的战略…...

JAVA将一个同步方法改为异步执行

目的&#xff1a; 这么做的目的就是为了使一个高频率执行的方法能不阻塞整个程序&#xff0c;将该方法丢入到线程池中让线程去做异步执行&#xff0c;既提高了程序整体运行速度&#xff0c;也使得在高并发环境下程序能够更加健壮&#xff08;同步执行可能会使得请求堆积以致系…...

对遗传算法思想的理解与实例详解

目录 一、概述 二、实例详解 1&#xff09;问题描述与分析 2&#xff09;初始化种群 3&#xff09;计算种群适应度 4&#xff09;遗传操作 5&#xff09;基因交叉操作 6&#xff09;变异操作 三、计算结果 四、总结 一、概述 遗传算法在求解最优解的问题中最为常用&a…...

数据可视化大屏——物流大数据服务平台(二)

代码分析&#xff1a; 物流大数据平台代码分析 这是一个基于 Bootstrap 和 ECharts 构建的物流大数据平台前端页面&#xff0c;设计采用了经典的三栏布局&#xff0c;主要展示河南省及全国的物流数据可视化内容。下面从多个维度进行分析&#xff1a; 1. 页面结构分析 整体采…...

MindSpore框架学习项目-ResNet药物分类-构建模型

目录 2.构建模型 2.1定义模型类 2.1.1 基础块ResidualBlockBase ResidualBlockBase代码解析 2.1.2 瓶颈块ResidualBlock ResidualBlock代码解释 2.1.3 构建层 构建层代码说明 2.1.4 定义不同组合(block&#xff0c;layer_nums)的ResNet网络实现 ResNet组建类代码解析…...

ChatTempMail - AI驱动的免费临时邮箱服务

在当今数字世界中&#xff0c;保护在线隐私的需求日益增长。ChatTempMail应运而生&#xff0c;作为一款融合人工智能技术的新一代临时邮箱服务&#xff0c;它不仅提供传统临时邮箱的基本功能&#xff0c;还通过AI技术大幅提升了用户体验。 核心功能与特性 1. AI驱动的智能邮件…...