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

自探索大语言模型微调(一)

一、数据

1.1、失败案例

Hugging Face:

根据B站上搜索到的资料,datasets这个库可以直接下载丰富的数据集合和与训练模型,调用也非常的简单,唯一的缺点就是,需要外网(翻墙),用国内的网数次无果后,选择放弃。

// 加载数据
import itertoolsfrom datasets import load_datasettest_dataset = load_dataset("p208p2002/wudao", split="train", streaming=True)m = 5
show_test_data = list(itertools.islice(test_dataset, m))
print(show_test_data)

注意:有一些小伙伴可能会把pytorch里面的dataset和hugging face里面的datasets搞混,但它俩是不同的库里面的不同的类。 

1.2、数据集

北京智源人工智能研究院(智源研究院)的Data Hub网站:

Data Hubhttps://data.baai.ac.cn/data注意:需要确保一下电脑有那么多内存,一个数据集几百个G;

// 展示一下所下载的数据集
import json
import os# 指定包含 JSON 文件的文件夹路径
folder_path = r'F:\AI\AI_Fine_Tune\pythonProject\data_WenBen\WuDaoCorpus2.0_base_200G'# 获取文件夹中所有 JSON 文件的列表,并按文件名排序
json_files = sorted([f for f in os.listdir(folder_path) if f.endswith('.json')])# 选择前5个文件,如果文件总数少于5个,则选择所有文件
json_files = json_files[:5]# 遍历前5个 JSON 文件
for filename in json_files:file_path = os.path.join(folder_path, filename)# 打开文件并读取with open(file_path, 'r', encoding='utf-8') as file:# 使用 json.load() 直接加载整个文件内容data = json.load(file)# 打印正在处理的文件名print(json.dumps(data, indent=4, ensure_ascii=False))

 二、部署预训练模型

下载Ollama(失败,本身可以微调但不兼容transform 的AutoTokenizer,该种方法拉取模型微调的方法将在后续研究):Ollamahttps://ollama.com/

下载了以后,可以设置把用ollama拉取的模型存在指定的路径下:

  • 启动设置(Windows 11)或控制面板(Windows 10)应用程序,并搜索环境变量。
  • 点击编辑账户环境变量。 编辑或创建一个新的用户账户变量OLLAMA_MODELS,设置为您希望存储模型的路径。
  • 点击确定/应用以保存。
  • 如果Ollama已经在运行,请退出系统托盘中的应用程序,然后从开始菜单或在保存环境变量后启动的新终端中重新启动它。

将模型拉取下来,这里拉取deepseek R1 1.5b的小模型试一试水:

// 命令行窗口, 系统的哈(win + R, cmd),不是pycharm等里面的终端// 拉取模型
ollama pull deepseek-r1:1.5b// 启动模型
ollama run deepseek-r1:1.5b
//此时,你的模型已经启动,可以开始与模型进行交互了
//这里的交互是在windows系统的命令行窗口交互哦// pycharm中调用ollama中的拉取的模型
import requests
import jsonhost = "localhost"
port = "11434"
url = f"http://{host}:{port}/api/chat"
model = "deepseek-r1:1.5b"data = {"model": model,"messages": [{"role": "user", "content": "生成一个 Python 函数"}]
}response = requests.post(url, json=data, timeout=60)
print(response.text)
// 该处response是很多个json对象,对应不同时间模型的输出,即是流式的
// 这种想要获取正常的一句话的结果,只能逐行拼接,就像下面这样# 定义一个生成器函数,逐行处理响应内容
def process_stream(response):for line in response.iter_lines():if line:try:# 解析 JSON 数据data = json.loads(line.decode("utf-8"))# 提取 content 字段并返回if "message" in data and "content" in data["message"]:yield data["message"]["content"]except json.JSONDecodeError as e:print(f"Error decoding JSON: {e}")# 使用生成器函数逐行处理输出
final_output = ""
for content in process_stream(response):final_output += content# 打印最终拼接的输出
print("Final Output:")
print(final_output)

魔塔社区拉取模型:DeepSeek-R1 · 模型库https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1该模型文件中包含了tokenizer.json文件,所以可以用AutoTokenizer把分词器找出来。所以说这个AutoTokenizer说是可以自动找分词器,实际上还是从文件中调用而已,我还以为很神奇...

👆这个不支持AutoTokenizer

通义千问1.5-7B-Chat · 模型库https://www.modelscope.cn/models/Qwen/Qwen1.5-7B-Chat/summary这个应该可以啦,应该可以啦。而且这个不需要vLLM或者SGLang,用python就可以调用。

// 魔塔社区下载模型:
// 首先要安装ModelScope SDKmodelscope download --model Qwen/Qwen1.5-7B-Chat// 新增账户环境变量,自定义下载模型的保存地点
MODELSCOPE_CACHE 
// ?改了以后路径也没有变,还是默认路径C:\Users\71997\.cache
// 需要重启// 下载模型modelscope download --model Qwen/Qwen1.5-7B-Chat

👆啊啊啊啊,但是它需要英伟达的显卡,木有~

👆没事,可以换成CPU

from modelscope import AutoModelForCausalLM, AutoTokenizer
//使用的是CPU啦
device = "cpu" # the device to load the model onto
//加载模型啦
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-7B-Chat",torch_dtype="auto",device_map="auto"
)
//找到分词器啦
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-7B-Chat")
//模拟输入
prompt = "Give me a short introduction to large language model."
messages = [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": prompt}
]
//把prompt和massages合在一起
text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True
)
//用分词器转换为token ID
model_inputs = tokenizer([text], return_tensors="pt").to(device)
//用模型生成输出的token ID
generated_ids = model.generate(model_inputs.input_ids,max_new_tokens=512
)
//把输入从总的response中去掉
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
//将token转化成人类语言
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
//成功啦
print("response:", response)

顺便下一节的Autotokenizer也解决了,( •̀ ω •́ )y~ 

 ###########################阅读说明过程中学习到的小知识#######################

1、冷启动数据(Cold Start Data)是指在机器学习模型训练的初期阶段,用于启动训练过程的少量高质量数据。这些数据通常不依赖于大规模的标签数据,而是通过精心设计,为模型提供指导性的推理信息,帮助模型在早期获得较好的表现。—— 个人理解:找一个好一点的初始值

2、模型蒸馏(Model Distillation)是一种知识迁移技术,其核心在于将一个大规模、预训练的教师模型(Teacher Model)所蕴含的知识传递给一个规模较小的学生模型(Student Model)。通过这种方式,学生模型能够在保持较高预测性能的同时,显著降低模型的复杂性和计算资源需求。

  ###########################阅读说明过程中学习到的小知识#######################

三、数据处理

数据预处理,主要是将结构化的数据tokenize一下,并且对数据进行填充或者截断,这步主要是确保数据的大小与模型的要求相匹配;tokenize并不仅仅是将词分解成一个token那么大,而且它还将token大小的词转化成了数字

tokenize可以通过tokenizer实现,但需要注意的是tokenizer与模型是相匹配的,如果使用了错误的tokenizer会让模型很困惑,这样调出来的模型会一团糟。

// 这种是Hugging Face的,估计有可能用不了
from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("DeepSeek-R1-Distill-Qwen-1.5B")
// 啊,真的用不了,不开心,还要去找词汇表和tokenizer的文件// 经查阅,deepseek-r1:1.5b对应的分词器为LlamaTokenizerFast

因为,ollama拉取的模型文件形式为:

目前,据我了解和transform不匹配(调用会报找不到模型文件的错误,为什么呢?都可以交互了)。查阅魔塔社区的开源模型,看形式是匹配的,接下来去魔塔社区下载一个预训练模型;然后使用以下代码达成数据处理的目的:

from transformers import AutoTokenizermodel_dir = r"F:\AI\ollama_model"  # 替换为本地模型文件夹路径
tokenizer = AutoTokenizer.from_pretrained(model_dir)

四、模型微调

4.1、模型微调的方法

(一) LoRA(Low-Rank Adaptation)微调

这种方法的核心思想是通过引入低秩矩阵来调整模型的权重,而不是直接修改模型的所有参数。这种方式不仅节省计算资源,还能显著提高微调的效率。

W=W_0 +\left ( A * B \right )

其中,W是现在的权重,W_0是原始的权重,AB就是低秩权重;

相关文章:

自探索大语言模型微调(一)

一、数据 1.1、失败案例 Hugging Face: 根据B站上搜索到的资料,datasets这个库可以直接下载丰富的数据集合和与训练模型,调用也非常的简单,唯一的缺点就是,需要外网(翻墙),用国内的…...

算法练习(链表)

链表 链表的分类 单向链表,双向链表带头链表,不带头链表循环的,非循环的 链表的结构 图中所示的为链表的一个节点,value是这个节点的所存储的数据值,next为下一节点的地址。 代码实现链表 1.创建节点类 节点由…...

在 Ubuntu 服务器上使用宝塔面板搭建博客

📌 介绍 在本教程中,我们将介绍如何在 Ubuntu 服务器 上安装 宝塔面板,并使用 Nginx PHP MySQL 搭建一个博客(如 WordPress)。 主要步骤包括: 安装宝塔面板配置 Nginx PHP MySQL绑定域名与 SSL 证书…...

K8S学习之基础二十八:k8s中的configMap

k8s中的configMap ​ configMap是k8s的资源对象,简称cm,用于保存非机密性的配置,数据可以用key/value键值对形式保存,也可以通过文件形式保存 ​ 在部署服务的时候,每个服务都有自己的配置文件,如果一台服…...

EDID读取学习

简介 Video BIOS可以被认为是一个具有独立硬件抽象层的操作系统。它不会阻止或监视操作系统、应用程序或设备驱动程序对硬件的直接访问。虽然不推荐,但一些DOS应用程序确实可以改变基本的硬件设置,而根本不需要通过视频BIOS。大多数现代应用程序和操作系统都避免直接使用硬件…...

基于 SSE 和 WebSocket 的在线文本实时传输工具

简介 在线文本实时传输工具支持 SSE(Server-Sent Events) 和 WebSocket,可在不同设备间快速共享和同步文本,适用于跨设备协作、远程办公和即时通讯。 核心功能 实时同步:文本输入后,另一端用户可立即看到…...

​​​​​​​大语言模型安全风险分析及相关解决方案

大语言模型的安全风险可以从多个维度进行分类。 从输入输出的角度来看,存在提示注入、不安全输出处理、恶意内容生成和幻觉错误等风险; 从数据层面来看,训练数据中毒、敏感信息泄露和模型反演攻击是主要威胁; 模型自身则面临拒绝服务和盗窃的风险; 供应链和插件的不安全引…...

4、linux c 进程

【三】进程 1. 进程与程序的区别 程序:存放在磁盘上的指令和数据的有序集合(文件),是静态的。 进程:执行一个程序所分配的资源的总称,是动态的。 2. 进程的组成部分 BSS段(bss)&…...

OpenFeign

OpenFeign 工作原理详解 1. 声明式接口 开发者通过定义一个接口,并使用特定的注解(如GetMapping, PostMapping等)来描述HTTP请求。OpenFeign会根据这些注解自动生成相应的HTTP请求。 注解支持: FeignClient:用于定…...

Centos离线安装perl

文章目录 Centos离线安装perl1. perl是什么?2. Perl下载地址3. perl的安装4. 安装结果验证 Centos离线安装perl 1. perl是什么? Perl 是一种 高级脚本语言,诞生于 1987 年,以强大的 文本处理能力 和灵活性著称,常用于…...

RabbitMQ可靠性进制

文章目录 1.生产者可靠性生产者重连生产者确认小结 2. MQ的可靠性数据持久化LazyQueue小结 3. 消费者的可靠性消费者确认机制消费者失败处理方案业务幂等性唯一消息ID业务判断 兜底方案业务判断 兜底方案 1.生产者可靠性 生产者重连 在某些场景下由于网络波动,可能…...

PHP优化技术

最近在学习php语言,打算用来提升开发小项目的效率。下面是php项目中常见的优化手段。 1、引起php性能问题的原因 (1)php语法使用不当 (2)使用php做了它不擅长的事 (3)用php连接的服务不给力 &…...

【Go类库分享】Go expr 通用表达式引擎

【Go类库分享】Go expr 通用表达式引擎 官方教程:https://expr-lang.org/docs/language-definition 官方Github:https://github.com/expr-lang/expr 文章所含代码地址:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/go-d…...

线性代数(1)用 excel 计算鸡兔同笼

线性代数excel计算鸡兔同笼 案例:鸡兔同笼问题的三种解法(递进式教学)一、问题描述二、方程式解法(基础版)步骤解析 三、线性代数解法(进阶版)1. 方程组转化为矩阵形式2. 矩阵求解(逆…...

Docker基础知识介绍

Docker基础篇 必须要在Linux环境下才能运行,windows下运行也是安装虚拟机后才能下载安装运行 下载安装 linux 依次执行下边步骤 更新 yum yum update 卸载旧的Docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \do…...

机器人交社保属于“无稽之谈”?

今晨浏览社交网站,惊奇地看到“给机器人上社保”的网页搜索结果竟然多达“约 3,280,000个”。所以被称为“无稽之谈”和“本质上是利用社保之名收税”就实不为过,而且还会让人读罢笑得喷饭:“连搞笑大王赵本山见了,也定会拱手作揖…...

接口测试和功能测试的区别

接口测试和功能测试的区别 一 **接口测试概述**1.1 定义1.2 优缺点 二 **功能测试概述**2.1 定义2.2 优缺点 三 **主要区别**四 两者在测试点的区别4.1 **接口测试的测试点**4.2 **功能测试的测试点**4.3 **接口测试 vs. 功能测试的测试点对比** 五 区别类比**例子背景**&#…...

人工智能中的线性代数基础详解

‌ 线性代数是人工智能领域的重要数学基础之一,是人工智能技术的底层数学支柱,它为数据表示、模型构建和算法优化提供了核心工具。其核心概念与算法应用贯穿数据表示、模型训练及优化全过程。更多内容可看我文章:人工智能数学基础详解与拓展-CSDN博客 一、基本介绍 …...

nginx不在默认的yum仓库的解决方法

1、添加 Nginx 官方仓库 epel-release 是 Extra Packages for Enterprise Linux 的仓库,包含了 nginx 等常用软件。 sudo yum install -y epel-release sudo yum install -y nginx 2、手动添加 Nginx 仓库 如果 epel-release 不可用,可以手动添加 Ng…...

IXTUR气控永磁铁:以高精度气控和稳定磁场,为机器人应用提供稳定抓取力

在现代工业生产和物流领域,物料的抓取与搬运是影响生产效率和成本控制的重要环节。传统夹爪在面对不同材质、形状和重量的物体时,常常存在适应性差、抓取不稳定、操作复杂等问题,导致生产流程中频繁出现停机调整,增加了人工干预成…...

【uni-app运行错误】SassError: expected selector @import “@/uni.scss“;

ERROR in ./src/pages/biddingViews/address_add.vue?vue&typestyle&index0&id41672bf3&scopedtrue&langscss& (./node_modules/vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22[0].rules[0].use[1]!./node_modules/dcloud…...

堆排序:力扣215.数组中的第K个大元素

一、问题描述 在一个整数数组 nums 中,需要找出第 k 个最大的元素。这里要注意,我们要找的是数组排序后的第 k 个最大元素,而不是第 k 个不同的元素。例如,对于数组 [3,2,1,5,6,4],当 k 2 时,第 2 个最大…...

【网络协议】应用层协议HTTPS

文章目录 为什么引入HTTPS?基本概念加密的基本过程对称加密非对称加密中间人攻击证书 为什么引入HTTPS? 由于HTTP协议在网络传输中是明文传输的,那么当传输一些机密的文件或着对钱的操作时,就会有泄密的风险,从而引入…...

网络安全防护总体架构 网络安全防护工作机制

1 实践内容 1.1 安全防范 为了保障"信息安全金三角"的CIA属性、即机密性、完整性、可用性,信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论,典型的有PDR和P^2DR模型。 1.1.1 PDR模型 信息系统的防御机制能…...

图像处理篇---图像预处理

文章目录 前言一、通用目的1.1 数据标准化目的实现 1.2 噪声抑制目的实现高斯滤波中值滤波双边滤波 1.3 尺寸统一化目的实现 1.4 数据增强目的实现 1.5 特征增强目的实现:边缘检测直方图均衡化锐化 二、分领域预处理2.1 传统机器学习(如SVM、随机森林&am…...

探针泄露(WEB)

##解题思路 题目提示是探针泄露,未及时删除的探针可能造成严重的数据泄露 探针的文件常见命名为tz.php,访问它 对于php相关参数,我们是可以点击的,点击phpinfo访问 跳转后搜索flag,得到flag...

Webpack总结

Webpack是一个前端模块打包工具。它可以将多个模块按照依赖关系进行静态分析,并生成一个或多个打包后的文件。 Webpack的核心概念包括entry(入口)、output(输出)、loader(加载器)和plugin&…...

什么是物理信息神经网络PINN

定义原理 物理信息神经网络(PINN)是一种创新的机器学习方法,将深度学习与物理知识相结合,旨在解决偏微分方程(PDE)相关问题。PINN的核心思想是在神经网络的训练过程中引入物理定律,从而提高模型的泛化能力和预测精度。 PINN的工作原理基于以下关键步骤: 构建神经网络…...

Java面向对象(中)

面向对象(中) 1.继承性 继承性的好处: 减少了代码的冗余,提高了代码的复用性。 便于功能的拓展。 为多态性的使用提供了前期。 格式: class A extends B {} A:子类,派生类,subclass。 B:父类&#x…...

ospf单区域

OSPF单区域是指将整个自治系统(AS)内的所有路由器划分到同一个逻辑区域(Area 0,即骨干区域)中运行的OSPF协议模式。以下是其核心要点: 一、定义与核心特点 ‌区域统一性‌ 所有路由器均属于同一区域&…...

kali之nmap

kali之nmap Nmap(Network Mapper)是 Kali Linux 中最著名的网络扫描工具之一,广泛用于网络发现、端口扫描、服务识别、操作系统检测等任务。它是一个功能强大且灵活的开源工具,适用于渗透测试、网络管理和安全审计。 1. Nmap 的主…...

【Rust基础】排序和分组

排序 简单排序 整数排序 #[test] fn test_sort(){let mut list vec![1, 5, 3, 2, 4];list.sort(); //✔assert_eq!(list, vec![1, 2, 3, 4, 5]); }小数排序 #[test] fn test_sort(){let mut list vec![1, 5, 3, 2, 4];//❌ 不能直接使用sort,因为f32和f64未实现O…...

HarmonyOS NEXT开发实战——HUAWEI DevEco Studio 开发指南

概述 HUAWEI DevEco Studio(以下简称 DevEco Studio)是基于 IntelliJ IDEA Community 开源版本打造的一站式开发平台,专为 HarmonyOS 系统上的应用和元服务(以下简称 应用/元服务)提供高效的开发环境。 作为一款专业…...

R 语言科研绘图 --- 密度图-汇总

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

【拒绝算法PUA】LeetCode 2270. 分割数组的方案数

系列文章目录 【拒绝算法PUA】0x00-位运算 【拒绝算法PUA】0x01- 区间比较技巧 【拒绝算法PUA】0x02- 区间合并技巧 【拒绝算法PUA】0x03 - LeetCode 排序类型刷题 【拒绝算法PUA】LeetCode每日一题系列刷题汇总-2025年持续刷新中 C刷题技巧总结: [温习C/C]0x04 刷…...

k8s 配置两个deployment主机级别互斥部署

在 Kubernetes 中,要实现两个 Deployment 的 Pod 在主机级别互斥部署,可以使用 podAntiAffinity 配置。通过设置 podAntiAffinity,可以确保两个 Deployment 的 Pod 不会被调度到同一节点上。 实现步骤 定义 Deployment: 为每个…...

Axure大屏可视化原型模板及素材:数据可视化的高效解决方案

数据可视化已成为企业决策、运营分析、市场洞察的重要工具。数据可视化大屏,作为数据展示和交互的直观平台,能够实时呈现关键数据,帮助企业快速做出决策。Axure作为原型设计领域的领先工具,以其丰富的组件库、强大的交互设计能力和…...

AGI大模型(2):GPT:Generative Pre-trained Transformer

1 Generative Pre-trained Transformer 1.1 Generative生成式 GPT中的“生成式”指的是该模型能够根据输入自动生成文本内容,而不仅仅是从已有的文本库中检索答案。 具体来说: 生成(Generative):GPT是一个生成式AI模型,能够根据给定的提示(Prompt)动态生成连贯、…...

Profinet转Profinet以创新网关模块为核心搭建西门子和欧姆龙PLC稳定通讯架构案例​

你是否有听过PROFINET主站与PROFINET主站之间需要做数据通讯有需求? 例如西门子1500与霍尼韦尔DCS系统两个主站之间的通讯。应用于PROFINET为主站设备还有欧姆龙、基恩士、罗克韦尔、施耐德、GE、ABB等品牌的PLC或DCS、FCS等平台。在生产或智能领域有通讯需求。两头…...

函数调用汇编

目录 一、核心概念 二、函数调用过程(以 x86 cdecl 为例) 三、x86 vs x64 区别 四、示例分析(C代码 → 汇编) 五、常见问题 一、核心概念 调用约定 (Calling Convention) 规定参数传递顺序(如 cdecl 是右到左&…...

LabVIEW 线性拟合

该 LabVIEW 程序实现了 线性拟合(Linear Fit),用于计算给定一组数据点的斜率(Slope)和截距(Intercept),并将结果可视化于 XY Graph 中。本案例适用于数据拟合、实验数据分析、传感器…...

在办公电脑上本地部署 70b 的 DeepSeek 模型并实现相应功能的大致步骤

以下是为客户在办公电脑上本地部署 70b 的 DeepSeek 模型并实现相应功能的大致步骤: 硬件准备: 70b 模型对硬件要求较高,确保办公电脑有足够强大的 GPU(例如 NVIDIA A100 等高端 GPU,因为模型规模较大,普通…...

国产编辑器EverEdit - 脚本(解锁文本编辑的无限可能)

1 脚本 1.1 应用场景 脚本是一种功能扩展代码,用于提供一些编辑器通用功能提供不了的功能,帮助用户在特定工作场景下提高工作效率,几乎所有主流的编辑器、IDE都支持脚本。   EverEdit的脚本支持js(语法与javascript类似)、VBScript两种编程…...

网络安全需要学多久才能入门?

网络安全是一个复杂且不断发展的领域,想要入行该领域,我们需要付出足够多的时间和精力好好学习相关知识,才可以获得一份不错的工作,那么网络安全需要学多久才能入门?我们通过这篇文章来了解一下。 学习网络安全的入门时间因个人的…...

H5端vue3 SSR 项目报错小计

H5端vue3 SSR 项目报错小计 环境 "vue-router": "^4.1.6" "vue": "^3.2.45", "vant": "^3.4.9",报错复现 ①.页面刷新点击 RouterLink 跳转链接, 页面无法跳转 问题排查 ①.去除 van-popup 使用的 teleport“…...

【Node.js入门笔记4---fs 目录操作】

Node.js入门笔记4 Node.js---fs 目录操作一、目录操作1.fs.mkdir():创建目录。异步,非阻塞。创建单个目录创建多个目录创建目前之前需要确认是否存在: 2. fs.mkdirSync():用于创建一个新的目录。异步,非阻塞。3.fs.rmd…...

xcode 旧版本、历史版本下载

下载链接:https://developer.apple.com/download/all/ 版本发布日志:https://developer.apple.com/documentation/xcode-release-notes 需要登录开发者账号,搜索下载即可: 再贴一下网友做的版本统计macOS 版本对应的 Xcode 版本&…...

(十一) 人工智能 - Python 教程 - Python元组

更多系列教程,每天更新 更多教程关注:xxxueba.com 星星学霸 1 元组(Tuple) 元组是有序且不可更改的集合。在 Python 中,元组是用圆括号编写的。 实例 创建元组: thistuple ("apple", "b…...

【计算机视觉】工业表计读数(1)--基于关键点检测的读数识别方案

随着工业自动化和智能制造的发展,对设备状态实时监控和数据采集提出了更高要求。本文提出了一种基于YOLO的工业表计读数识别方法,通过首先利用YOLO进行表计目标检测,提取出单独的表计图像,然后分别对表针和刻度进行关键点检测&…...

Redis--Zset类型

目录 一、引言 二、介绍 三、命令 1.zadd 2.zrange,zrevrange,zrangebyscore 3.zcard,zcount 4.zpopmax,bzpopmax,zpopmin,bzpopmin 5.zrank,zrevrank,zscore 6.zrem,zremrangebyrank&a…...