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

瑞芯微芯片算法开发初步实践

文章目录

  • 一、算法开发的一般步骤
    • 1.选择合适的深度学习框架
    • 2.对于要处理的问题进行分类,是回归问题还是分类问题。
    • 3.对数据进行归纳和整理
    • 4.对输入的数据进行归一化和量化,保证模型运行的效率和提高模型运行的准确度
    • 5.在嵌入式处理器上面运行模型,对嵌入式处理器的整体性能提出了要求
    • 6.将通用的算法模型转换成适配嵌入式处理器的模型文件
    • 7.对模型的运行效率进行优化
  • 二、瑞芯微芯片部署初步尝试
  • 总结

一、算法开发的一般步骤

1.选择合适的深度学习框架

(1)TensorFlow 是一个开源的机器学习框架,由 Google Brain 团队开发并维护。它广泛应用于深度学习、数据分析、自然语言处理、计算机视觉等领域,是目前最流行的机器学习框架之一。
TensorFlow 的名字来源于其核心数据结构——张量(Tensor)。张量是一个多维数组,可以表示从标量(0维)到向量(1维)、矩阵(2维)以及更高维度的数据结构。TensorFlow 通过构建一个**计算图(Graph)来描述张量之间的数学运算,然后通过会话(Session)**执行这些运算。
张量(Tensor):数据的载体,是 TensorFlow 中最基本的数据结构。
计算图(Graph):描述张量之间的运算关系,类似于程序的流程图。
会话(Session):用于执行计算图中的运算。
操作(Operation):计算图中的节点,表示对张量的运算。
支持多种语言:TensorFlow 提供了 Python、C++、Java 等多种语言的 API,方便不同开发者使用。
平台无关性:可以在 CPU、GPU、TPU(张量处理单元)等多种硬件上运行,支持桌面、服务器和移动设备。
工具和库:支持与其他工具(如 Keras、TensorBoard 等)无缝集成,方便模型开发和可视化。
在这里插入图片描述
(2)PyTorch 是一个开源的机器学习库,广泛用于计算机视觉、自然语言处理等人工智能领域。它由 Facebook 的人工智能研究团队开发,并于 2016 年首次发布。以下是关于 PyTorch 的详细介绍:
动态计算图:
PyTorch 使用动态计算图(Dynamic Computational Graph),允许用户在运行时动态修改计算图的结构。这种灵活性使得调试和开发更加直观,尤其是在处理复杂的模型或动态输入时。
易用性:
PyTorch 提供了简洁直观的 API,类似于 NumPy 的操作方式,使得新手可以快速上手。同时,它也支持自动求导(Autograd)功能,简化了梯度计算的过程。
强大的社区支持:
PyTorch 拥有一个活跃的开源社区,提供了大量的预训练模型、教程和工具。这使得开发者可以快速找到解决方案,并利用社区的力量进行学习和开发。
与 Python 深度集成:
PyTorch 完全基于 Python,与 Python 生态系统无缝对接。它可以与 NumPy、SciPy 等科学计算库以及各种深度学习框架(如 TensorFlow)协同工作。
高效性能:
PyTorch 提供了高效的 GPU 支持,能够充分利用 NVIDIA 的 CUDA 技术加速计算。同时,它也支持分布式训练,适用于大规模数据集和复杂模型的训练。
灵活的扩展性:
PyTorch 允许用户自定义操作和模块,通过扩展 C++ 和 CUDA 代码来实现高性能的自定义功能。

(3)国内有华为的昇思框架。
华为昇思(MindSpore)是华为推出的一个全场景深度学习框架,旨在实现易开发、高效执行和全场景覆盖。
1.主要信息:
昇思MindSpore是一个面向全场景的AI计算框架,支持终端、边缘计算和云端的全场景需求。它具备以下特点:
易开发:提供友好的API和低难度的调试体验。
高效执行:支持高效的计算、数据预处理和分布式训练。
全场景覆盖:支持云、边缘和端侧的多种应用场景。
安全可信:具备企业级的安全特性,保护数据和模型的安全。
2.主要功能
分布式并行能力:支持一行代码自动并行执行,能够训练千亿参数的大模型。
图算深度融合:优化AI芯片的算力,提升计算效率。
动静图统一:兼顾灵活开发与高效运行。
AI + 科学计算:支持生物分子、电磁、流体等领域的科研应用。
多种编程范式:支持面向对象、函数式等多种编程方式。

2.对于要处理的问题进行分类,是回归问题还是分类问题。

回归‌:预测连续的数值型输出,例如房价、温度、股票价格等。其目标是建立自变量与因变量之间的数学关系(线性或非线性),实现对未知数据的数值估计。
‌分类‌:预测离散的类别标签,例如垃圾邮件识别(二分类)或水果图片分类(多分类)。其核心是通过决策边界将数据划分到预定义的类别中。

3.对数据进行归纳和整理

  1. 数据收集
    明确数据来源:确定算法需要的数据类型和来源,例如传感器数据、图像、文本、数据库等。
    数据量评估:评估所需数据的规模,确保数据量足够支持算法的训练和验证。
    数据完整性检查:初步检查数据是否完整,是否存在缺失值或异常值。
  2. 数据清洗
    去除重复数据:检查并删除重复的数据记录,避免对模型训练造成偏差。
    处理缺失值:
    删除缺失值:如果缺失数据较少,可以直接删除包含缺失值的记录。
    填充缺失值:使用均值、中位数、众数或插值方法填充缺失值。
    修正错误数据:检查数据中的异常值或错误数据,并进行修正或删除。

4.对输入的数据进行归一化和量化,保证模型运行的效率和提高模型运行的准确度

标准化:将数据转换为均值为0、标准差为1的分布。
归一化:将数据缩放到指定范围(如 [0, 1] 或 [-1, 1])。

5.在嵌入式处理器上面运行模型,对嵌入式处理器的整体性能提出了要求

目前一般可以运行算法的芯片都是核心数比较多,或者加入了自家的算法处理单元,比如NPU或者GPU。

6.将通用的算法模型转换成适配嵌入式处理器的模型文件

比如瑞芯微芯片提供了rknn-Toolkit2。
RKNN-Toolkit2 工具在 PC 平台上提供 C 或 Python 接口,简化模型的部署和运行。用户可以通过该工具轻松完成以下功能:模型转换、量化、推理、性能和内存评估、量化精度分析以及模型加密。RKNN 软件栈可以帮助用户快速的将 AI 模型部署到 Rockchip 芯片。整体的框架如下:
在这里插入图片描述
为了使用 RKNPU,用户需要首先在计算机上运行 RKNN-Toolkit2 工具,将训练好的模型转换为 RKNN 格式模型,之后使用 RKNN C API 或 Python API 在开发板上进行部署。

7.对模型的运行效率进行优化

可以使用硬件优化,比如采用多核心多线程的方式,提高模型的并行处理能力。还有就是对于算子进行优化。对数据进行精度的降低,但是对于运行效率可以提高。

二、瑞芯微芯片部署初步尝试

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

总结

以上就是对于嵌入式处理器中部署和运行算法程序的一般开发思路。目前算法学习涉及到的知识面比较多,有卷积、神经网络,梯度,学习率,激活函数,损失函数,均值算法等。需要一个部分一个部分地去走通整个工程,这样对于算法的学习有一个全面的了解。

相关文章:

瑞芯微芯片算法开发初步实践

文章目录 一、算法开发的一般步骤1.选择合适的深度学习框架2.对于要处理的问题进行分类,是回归问题还是分类问题。3.对数据进行归纳和整理4.对输入的数据进行归一化和量化,保证模型运行的效率和提高模型运行的准确度5.在嵌入式处理器上面运行模型&#x…...

大连理工大学选修课——机器学习笔记(1):概述

机器学习概述 机器学习的本质 机器学习是为了设计解决问题的算法。 为输入与输出建立某种映射: 类似于函数关系: Y f ( X ) Yf(X) Yf(X) 不同的映射方法体现了不同的思想。 相关概念 深度学习是机器学习的一个分支 深度学习是深层次化的神经网…...

(4)python中jupyter lab使用python虚拟环境

1. 先了解IPython和IPyKernel简介 IPython 是一个功能强大的交互式 Python 解释器和开发环境。它提供了一种增强的 Python Shell,使得用户能够以交互的方式探索、分析和可视化数据。IPython 的名称来源于 "Interactive Python",体现了其交互式的特性。 IPyKernel 是…...

VSCode Auto Rename Tag插件不生效

目录 一、问题 二、解决方法 一、问题 1.Auto Rename Tag插件安装后不生效,每次打开右下角都有 一个 弹框提示: The Auto Rename Tag server crashed 5 times in the last 3 minutes. The server will not be restarted. 大概意思:Auto …...

git did not exit cleanly (exit code 128) 已解决

在回退代码的时候遇到这个报错提示: 网上搜索的时候看到有几种解决办法: 1.更改地址 TortoiseGit --> "Settings" --> "Network" 将"C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe" 修改为"C:\…...

一个完整的神经网络训练流程详解(附 PyTorch 示例)

🧠 一个完整的神经网络训练流程详解(附 PyTorch 示例) 📌 第一部分:神经网络训练流程概览(总) 在深度学习中,构建和训练一个神经网络模型并不是简单的“输入数据、得到结果”这么简…...

2025年-redis(p1-p10)

1.redis介绍 (1)基础:常见的数据结构及命令、jedis的应用和优化、springDataRedis的应用和优化 (2)企业实战的应用场景:共享session、缓存解决问题、秒杀中的redis应用、社交app中的redis应用、redis特殊结…...

一、OrcaSlicer源码编译

一、下载 1、OrcaSlicer 2.3.0版本的源码 git clone https://github.com/SoftFever/OrcaSlicer.git -b v2.3.0 二、编译 1、在OrcaSlicer目录运行cmd窗口,输入build_release.bat 2、如果出错了,可以多运行几次build_release.bat 3、在OrcaSlicer\b…...

Linux 基础IO(上)--文件与文件描述符fd

前言: 在生活里,我们常和各种文件打交道,像用 Word 写文档、用播放器看视频,这些操作背后都离不开文件的输入输出(I/O)。在 Linux 系统中,文件 I/O 操作更是复杂且关键。 接下来我们将深入探讨…...

泛微OA.E9--07--IDEA搭建后端二开环境

泛微OA.E9–07–IDEA搭建后端二开环境 一.前期准备 1.安装IDEA 2.从服务器中把ecology和JDK这几个文件拷贝到本地。 (ecology太大的话可以不拷log日志文件) 3.拷到本地后,在ecology文件下创建src文件夹 二.配置IDEA 1.启动IDEA后&#xff0…...

美的人形机器人即将投入实际应用

国内家电巨头美的集团近日公布了其自主研发的人形机器人的具体落地计划。根据公司披露的信息,这款机器人将于5月在湖北荆州的洗衣机工厂率先投入使用,承担设备运维、质量检测和物料搬运等工作任务。预计今年下半年,该机器人还将进入美的线下门…...

【使用小皮面板 + WordPress 搭建本地网站教程】

🚀 使用小皮面板 WordPress 搭建本地网站教程(快速上手) 本教程将手把手教你如何使用 小皮面板(XAMPP 类似工具) 和 WordPress 搭建一个完全本地化的网站环境。适合 初学者 / 博主 / Web开发者 本地练习使用&#xf…...

EWM 流程全自动化实现方法

目录 1 简介 2 实现方法 2.1 EWM 内向交货单自动创建 2.2 EWM 自动收货 2.3 当 EWM GR 的时候,自动触发 EWM 上架仓库任务。 2.4 确认 EWM 仓库任务/订单 3 写在最后 1 简介 当仓库遇到 EWM 的时候,大家首先想到的是 EWM 的业务操作多且功能复杂,甚至有些客户还会考…...

智能驾驶新时代:NVIDIA高级辅助驾驶引领未来出行安全

智能驾驶新时代:NVIDIA高级辅助驾驶引领未来出行安全 在全球汽车产业数字化转型的时代潮流中,高级辅助驾驶技术已逐渐成为推动产业革新的核心动力。作为这一领域的领导者之一,NVIDIA通过其先进的技术解决方案,正在积极塑造未来的…...

NVIDIA DRIVE AGX平台:引领智能驾驶安全新时代

随着科技的不断进步,汽车行业正迎来前所未有的变革,智能驾驶技术成为全球产业竞相布局的焦点之一。然而,这场技术革命的背后,最关键且被广泛关注的是安全性问题。近日,我认真研读了NVIDIA发布的《自动驾驶安全报告》白…...

聚焦数字中国|AI赋能与安全守护:Coremail引领邮件办公智能化转型

4月28日,第八届数字中国建设峰会在福州拉开序幕。当天,数字中国新产品新技术发布会开讲,Coremail受邀亮相现场,与与会嘉宾分享AI在邮件产品领域的最新应用成果和实践经验。 Coremail首席客户代表刘子建以《AI赋能与安全守护&#…...

OpenCV的grabCut算法分割图像

OpenCV计算机视觉开发实践:基于Qt C - 商品搜索 - 京东 基本概念 使用grabCut算法可以用最小程度的用户交互来分解前景。从用户角度来看,grabCut算法是怎么工作的呢?首先画一个矩形方块把前景图圈起来,前景区域应该完全在矩形内…...

[计算机科学#6]:从锁存器到内存,计算机存储的构建与原理

【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要:在上一篇文章中,我们深入了解了计算机如…...

练习001

目录 前言 数字诗意 分析 代码 封闭图形个数 分析 代码 回文数组 分析 代码 商品库存管理 分析 代码 挖矿 分析 代码 回文字符串 分析 代码 前言 好久不更新了,今天来更新一下。 当然不是主包偷懒啊,是最近的事情实在是有点多QAQ。…...

【Linux调整FTP端口】

Linux调整FTP端口 一、确保新端口未被占用在修改端口之前,可以使用以下命令检查端口是否被占用: 二、修改vsftpd配置文件1. 打开vsftpd配置文件2. 找到并修改端口配置3. 保存并退出4. 重启vsftpd服务 三、配置防火墙 在Linux系统中修改FTP端口&#xff0…...

spring中的@Configuration注解详解

一、概述与核心作用 Configuration是Spring框架中用于定义配置类的核心注解,旨在替代传统的XML配置方式,通过Java代码实现Bean的声明、依赖管理及环境配置。其核心作用包括: 标识配置类:标记一个类为Spring的配置类,…...

AI中常用概念的理解

1. RAG(检索增强生成) 通俗理解:就像你写作业时,先查课本 / 百度找资料,再根据资料写答案,而不是纯靠记忆瞎编。 AI 模型(比如 ChatGPT)回答问题时,先去 “数据库 / 互联…...

JWT GenTokenParseToken

JWT(Json Web Token) 获取Token、解密Token jwt.go package jwtimport ("errors""time""github.com/golang-jwt/jwt/v5" )var jwtSecret []byte("secret")type CustomClaims struct {Username string json:"username"jw…...

ROS:发布相机、IMU等设备消息主题

文章目录 📚简介📷发布相机消息主题🌐网络相机🚀RTSP🔌串口设备🧩 踩坑📚简介 使用ROS系统录制rosbag包,需要发布设备消息主题,才能使用rosbag record命令录制rosbag包。 📷发布相机消息主题 获取相机视频流的方式有多种,主要包含: 网络相机,使用RTSP…...

C++好用的打印日志类

在项目中,调试打印十分重要,这里分享一个自己写的简单但是实用的打印日志类,控制台打印时间戳具体内容保存文件 1.相关库介绍及其基本用法 a.<iostream> 功能&#xff1a;提供基本的输入输出流功能&#xff0c;如std::cout用于控制台输出&#xff0c;std::cin用于控制台输…...

晶振:从消费电子到航天领域的时间精度定义者

从手表到卫星&#xff1a;晶振如何在不同领域定义时间精度 在时间的长河中&#xff0c;人类对时间精度的追求永无止境。从古老的日晷到如今精密的计时仪器&#xff0c;每一次进步都离不开技术的革新。而晶振&#xff0c;作为现代计时的核心元件&#xff0c;在不同领域发挥着至…...

huggingface下载数据和模型,部分下载,本地缓存等常见问题踩坑

huggingface 注&#xff1a;系统环境为windows11 23H2&#xff0c;macOS和Linux用户可以查看下【参考】里的链接文档&#xff0c;差异不大 安装huggingface-cli 虽然可以通过代码下载模型和数据集&#xff08;下文会提及&#xff09;&#xff0c;但我依然推荐你用此方法来管理…...

分布式架构:Dubbo 协议如何做接口测试

传统单体架构是一个应用程序进程内处理完所有的逻辑&#xff1a;一个系统糅合了多个功能&#xff0c;如注册 --登录–充值–余额管理–用户积分等&#xff0c;所有的功能模块都是在一个应用程度里处理完的&#xff1b;一个请求过来–> 到应用程序系统–>数据库处理–>…...

Python math 库教学指南

Python math 库教学指南 一、概述 math 库是 Python 标准库中用于数学运算的核心模块&#xff0c;提供以下主要功能&#xff1a; 数学常数&#xff08;如 π 和 e&#xff09;基本数学函数&#xff08;绝对值、取整等&#xff09;幂与对数运算三角函数双曲函数特殊函数&…...

Antd Upload组件连续回车会多次触发文件夹弹窗的bug修复

看了看issue一大堆&#xff0c;没一个解决的&#xff0c;真恼火&#xff1a;Upload 上传组件&#xff0c;当上传完一个文件后&#xff0c;我按下键盘回车键&#xff0c;自动又打开了“选择文件窗口”&#xff0c;点击“选择文件窗口”下面的取消按钮&#xff0c;再次打开了“选…...

数据仓库与数据湖的对比分析

目录 一、数据来源 数据仓库 数据湖 二、数据模式转换时机 数据仓库 数据湖 三、数据存储成本 数据仓库 数据湖 四、数据质量 数据仓库 数据湖 五、面向用户 数据仓库 数据湖 六、主要支撑的应用类型 数据仓库 数据湖 在企业数据管理领域&#xff0c;数据仓库…...

Windows系统下MinerU的CUDA加速配置指南

Windows系统下MinerU的CUDA加速配置指南 快速解锁GPU性能,提升文档解析效率 1、简介 MinerU是一款高效的文档解析工具,支持通过CUDA加速显著提升处理速度。本指南详细说明如何在Windows系统中配置CUDA环境,并启用MinerU的GPU加速功能,帮助用户充分利用NVIDIA显卡的计算能…...

LeetCode路径总和系列问题解析:I、II、III的解决方案与优化

文章目录 引言一、路径总和 I&#xff08;LeetCode 112&#xff09;问题描述方法思路Java代码实现复杂度分析 二、路径总和 II&#xff08;LeetCode 113&#xff09;问题描述方法思路Java代码实现复杂度分析 三、路径总和 III&#xff08;LeetCode 437&#xff09;问题描述方法…...

【漫话机器学习系列】233.激活阈(Threshold Activation)

深度学习入门&#xff1a;了解“阈值激活函数”&#xff08;Threshold Activation Function&#xff09; 激活函数是神经网络中至关重要的一环。今天&#xff0c;我们通过一幅简单直观的手绘图&#xff0c;一起理解最早期也最基础的激活函数之一 —— 阈值激活函数&#xff08;…...

使用vue开发electron

1.全局安装electron npm i electron -g 查看是否安装成功 electron -v 在vue项目中添加electron模块 vue add electron-builder 添加成功后&#xff0c;目录中多了background.js文件 可以在background.js配置 例如 窗口大小&#xff0c;是否可以缩放&#xff0c;是否可以移…...

安全企业内部im,BeeWorks即时通讯

BeeWorks企业即时通讯软件具备哪些优势&#xff1f; 1. 多样的沟通方式 文本消息&#xff1a;支持发送文字消息&#xff0c;包括富文本格式&#xff08;如加粗、斜体、下划线、颜色等&#xff09;。 语音消息&#xff1a;支持发送语音消息&#xff0c;方便快捷&#xff0c;适…...

网易爆米花 1.8.8 | 免费无广告,支持多网盘聚合和智能刮削技术,提供顶级画质和逼真音效的影视管理应用

网易爆米花TV是一款专为家庭设计的影视管理应用&#xff0c;旨在提供一个简洁易用的家庭影视库。它支持从多个网盘&#xff08;如阿里、百度、天翼等&#xff09;、WebDAV以及本地资源导入&#xff0c;聚合用户的影视资源&#xff0c;并通过智能刮削技术将视频信息形成精美的影…...

蓝牙语音遥控国产适用芯片HS6621

蓝牙语音遥控器一般是通过按下语音键&#xff0c;遥控器会发送一个 HID 编码通知智能电视或者机顶盒打开识音功能&#xff0c;此时&#xff0c;遥控器LED灯保持闪烁或者长亮&#xff0c;用户开始录音同时将语音数据上传给智能电视或者机顶盒。而智能电视或者机顶盒&#xff0c;…...

【Vue2】1-创建一个Vue实例

Vue2官方文档 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&g…...

销售与金融领域的数据处理与分析方法

一、引言 在销售和金融领域&#xff0c;除了常见的同比、环比和移动平均等数据处理方法外&#xff0c;还有众多方法可供选择&#xff0c;这些方法分布于不同的专业方向&#xff0c;旨在帮助分析和解决问题&#xff0c;以下将按类别对这些方法进行详细梳理。 二、按类别划分的…...

DataWorks Copilot 集成 Qwen3-235B-A22B混合推理模型,AI 效能再升级!

刚刚&#xff0c;阿里云一站式智能大数据开发治理平台 DataWorks 正式接入 Qwen3 模型&#xff0c;可支持235B最大尺寸。用户通过 DataWorks Copilot 智能助手即可调用该模型&#xff0c;通过自然语言交互完成多种代码操作&#xff0c;实现数据开发、数据分析的快速实现。 Qwen…...

芯片软错误概率探究:基于汽车芯片安全设计视角

摘要&#xff1a; 本文深入剖析了芯片软错误概率问题&#xff0c;结合 AEC-Q100 与 IEC61508 标准&#xff0c;以 130 纳米工艺 1Mbit RAM 芯片为例阐述其软错误概率&#xff0c;探讨汽车芯片安全等级划分及软错误对汽车关键系统的影响&#xff0c;分析先进工艺下软错误变化趋势…...

青少年抑郁症患者亚群结构和功能连接耦合的重构

目录 1 研究背景及目的 2 研究方法 2.1 数据来源与参与者 2.1.1 MDD患者&#xff1a; 2.1.2 健康对照组&#xff1a; 2.2 神经影像分析流程 2.2.1 图像采集与预处理&#xff1a; 2.2.2 网络构建&#xff1a; 2.2.3 区域结构-功能耦合&#xff08;SC-FC耦合&#xff09…...

汽车OTA在线升级法规分析

摘要 本文介绍了R156法规即《关于批准车辆的软件升级和软件升级管理体系统一规定的法规》、该法规专注于汽车软件升级功能&#xff0c;并为此提出了一系列具体要求&#xff0c;旨在确保软件升级流程的安全性、可控性和合规性&#xff0c;从而顺应汽车行业智能化、联网化的发展趋…...

【上海大学数据库原理实验报告】MySQL基础操作

实验目的 熟悉MySQL基础操作。 实验内容 创建四张工程项目的关系表。 图 1 四张工程项目关系表的结构 检索供应零件编号为J1的工程的供应商编号SNO。检索供应零件给工程J1&#xff0c;且零件编号为P1的供应商编号SNO。查询没有正余额的工程编号、名称及城市&#xff0c;结果…...

FUSE 3.0.0 | 聚合7大直播平台的免费电视直播软件,支持原画清晰度及弹幕、收藏功能

FUSE是一款第三方娱乐直播软件&#xff0c;它聚合了多个直播平台的内容&#xff0c;为用户提供丰富的观看选择。首次进入软件后点击左上角logo&#xff0c;然后点击‘我已诚信付款&#xff0c;解锁LIVEPRO’按钮即可解锁所有功能。该软件聚合了7大直播平台&#xff0c;每个平台…...

在企业微信中,回调地址 redirect_uri 是允许包含端口号

在企业微信中&#xff0c;回调地址&#xff08;redirect_uri&#xff09;允许包含端口号的原因主要有以下几点&#xff1a; 1. 企业微信的开放设计 企业微信对回调地址的校验相对灵活&#xff0c;允许开发者根据实际业务需求配置带端口号的域名。这与部分严格限制端口的平台&a…...

Rust 学习笔记:枚举与模式匹配

Rust 学习笔记&#xff1a;枚举与模式匹配 Rust 学习笔记&#xff1a;枚举与模式匹配定义枚举&#xff08;Enum&#xff09;枚举变量Option 枚举及其相对于 NULL 的优势match 和枚举与 Option\<T\> 匹配match 应该是详尽的Catch-all 模式和 _ 占位符使用 if let 和 let e…...

UI自动化测试的优势

1. UI自动化测试的优势(提升效率的场景) ✅ 适合自动化的场景 (1) 高频回归测试 典型场景:每次版本迭代都要验证的核心功能(如登录、支付流程)。 效率提升:自动化脚本执行速度远高于手动测试,尤其适合敏捷开发中的快速验证。 (2) 跨平台/多环境测试 典型场景:需要在不…...

【Android】轻松实现实时FPS功能

文章目录 实时FPS 实时FPS 初始化 choreographer Choreographer.getInstance();lastFrameTimeNanos System.nanoTime();choreographer.postFrameCallback(frameCallback);监听并显示 Choreographer.FrameCallback frameCallback new Choreographer.FrameCallback() {Overri…...