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

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型)

 Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型)

目录

 Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型)

1. 项目说明

2. 数据说明

(1)心跳信号分类预测数据集

3. 模型训练

(1)项目安装

(2)准备Train和Test数据

(3)配置文件:​config.yaml​

(4)开始训练

(5)可视化训练过程

(6)一些优化建议

(7)一些运行错误处理方法

4. 模型测试效果

5. 项目源码下载


1. 项目说明

本项目将基于深度学习Pytorch,搭建一个心跳信号分类识别的训练和测试项目,实现一个简单的信号分类识别系统;项目网络模型支持LSTM,GRU和TCN等常见的模型,用户也可以自定义其他模型,进行训练和测试。采用GRU模型,在心跳信号分类预测数据集上,验证集的准确率99.3600%。

ae3b750e38a64e738927c1526778c4cb.png

模型准确率
LSTM

97.7000

TCN

96.1600

GRU

99.3600

【尊重原创,转载请注明出处】https://blog.csdn.net/guyuealian/article/details/142714205

2. 数据说明

(1)心跳信号分类预测数据集

项目数据来源于某比赛《心跳信号分类预测》,该赛题主要任务是预测心电图心跳信号类别,提供了总数超过20万心电图数据记录,主要为1列心跳信号序列数据,其中每个样本的信号序列采样频次一致,长度相等。为了保证比赛的公平性,将会从中抽取10万条作为训练集,2万条作为测试集A,2万条作为测试集B,同时会对心跳信号类别(label)信息进行脱敏。

FieldDescription
id为心跳信号分配的唯一标识
heartbeat_signals心跳信号序列
label心跳信号类别(0、1、2、3)

比赛提供的数据的都是一维vector形式的信号,且数据已被归一化至 0~1 了,数据总长度均为 205 (205 个时间节点/心跳节拍),数据非常理想,无须进行填充和异常情况处理,当然在项目训练和开发中,建议加上信号数据增强,提高模型的泛化性。

赛题提供train.csv和testA.csv数据,其中train.csv提供了label标签可用于模型训练,testA.csv用于打榜比赛,为了方面模型本地开发和调优,本项目将train.csv文件中的前5000行数据作为验证集val.csv,剩余的数据作为训练集train.csv。


3. 模型训练

(1)项目安装

整套工程基本框架结构如下:

.
├── core                 # 训练模型核心代码
├── configs              # 训练配置文件
├── data                 # 项目相关数据
├── libs                 # 项目依赖的相关库
├── demo.py              # 模型推理demo
├── README.md            # 项目工程说明文档
├── requirements.txt     # 项目相关依赖包
└── train.py             # 训练文件

   项目依赖python包请参考requirements.txt,使用pip安装即可:

# python3.8
imgaug==0.4.0
numpy==1.21.6
matplotlib==3.1.0
Pillow==9.5.0
easydict==1.9
onnx==1.14.0
onnx-simplifier==0.4.33
onnxruntime==1.15.1
onnxruntime-gpu==1.15.1
onnxsim==0.4.33
opencv-contrib-python==4.8.1.78
opencv-python==4.8.0.76
pandas==1.1.5
PyYAML==5.3.1
Pillow==9.5.0
scikit-image==0.21.0
scikit-learn==1.2.2
scipy==1.10.1
seaborn==0.12.2
tensorboard==2.13.0
tensorboardX==2.6.1
torch==1.13.1+cu117
torchvision==0.14.1+cu117
tqdm==4.55.1
xmltodict==0.12.0
basetrainer
pybaseutils

 项目安装教程请参考(初学者入门,麻烦先看完下面教程,配置好开发环境):

  • 项目开发使用教程和常见问题和解决方法
  • 视频教程:1 手把手教你安装CUDA和cuDNN(1)
  • 视频教程:2 手把手教你安装CUDA和cuDNN(2)
  • 视频教程:3 如何用Anaconda创建pycharm环境
  • 视频教程:4 如何在pycharm中使用Anaconda创建的python环境

(2)准备Train和Test数据

下载项目数据集,train.csv和val.csv

数据增强方式主要采用: 随机增加噪声,随机平移,裁剪填充,数据归一化等处理方式

# -*-coding: utf-8 -*-
"""@Author : Pan@E-mail : 390737991@qq.com@Date   : 2021-08-02 14:33:33
"""
import numbers
import random
import numpy as np
from core.transforms import data_augmentdef data_transform(seq_size, dim_size, trans_type="train"):"""x's shape (batch_size, seq_size(序列长度), dim_size(序列中每个数据的长度)):param seq_size::param dim_size::param trans_type::return::"""if trans_type == "train":transform = data_augment.Compose([data_augment.RandomNoise(low=0.0, high=1.0, w=0.03),data_augment.RandomShift(shift=(-20, 5), low=0.0, high=1.0, w=0.001),data_augment.CropPadding(size=seq_size),data_augment.Normalize(),])elif trans_type == "val" or trans_type == "test":transform = data_augment.Compose([data_augment.CropPadding(size=seq_size),data_augment.Normalize(),])else:raise Exception("transform_type ERROR:{}".format(trans_type))return transform

修改配置文件数据路径:​config.yaml​

data_type: "signal"
# 训练数据集,可支持多个数据集
train_data: "/home/user/to/心跳信号分类预测/train.csv"
# 测试数据集
test_data: "/home/user/to/心跳信号分类预测/val.csv"
# 类别文件
class_name: [ 0,1,2,3 ]

(3)配置文件:​config.yaml​

  • 模型支持,LSTM,GRU和TCN等模型,用户也可以自定义模型,进行模型训练和测试。
  • 训练参数可以通过(configs/config.yaml)配置文件进行设置
  • 损失函数支持交叉熵CrossEntropy,LabelSmoothing以及FocalLoss等损失函数

 配置文件:​config.yaml​说明如下:

data_type: "signal"
# 训练数据集,可支持多个数据集
train_data: "data/train.csv"
# 测试数据集
test_data: "data/val.csv"
# 类别文件
class_name: [ 0,1,2,3 ]
train_transform: "train"       # 训练使用的数据增强方法
test_transform: "val"          # 测试使用的数据增强方法
work_dir: "work_space/"        # 保存输出模型的目录
net_type: "GRU"               # 骨干网络,支持:TCN,GRU,LSTM
batch_size: 256                # 训练batch-size
seq_size: 205                  # 模型输入序列长度
dim_size: 1                    # 模型输入特征数据维度
lr: 0.001                      # 初始学习率
optim_type: "AdamW"            # 选择优化器,SGD,Adam
#loss_type: "CrossEntropyLoss"  # 选择损失函数:支持CrossEntropyLoss
loss_type: "LabelSmoothingCrossEntropy"  # 选择损失函数:支持CrossEntropyLoss
momentum: 0.9                  # SGD momentum
num_epochs: 120                # 训练循环次数
num_workers: 8                 # 加载数据工作进程数
weight_decay: 0.0005           # weight_decay,默认5e-4
scheduler: "multi-step"        # 学习率调整策略
milestones: [ 40,80 ]          # 下调学习率方式
gpu_id: [ 0 ]                  # GPU ID
pretrained: True               # 是否使用pretrained模型
finetune: False                # 是否进行finetune

(4)开始训练

整套训练代码非常简单操作,用户只需要将相同类别的数据放在同一个目录下,并填写好对应的数据路径,即可开始训练了。

python train.py -c configs/config.yaml 

8abb6a7894984f169cfd5b3989aa61b1.png

训练完成后,在心跳信号分类预测数据集上,验证集的Accuracy在99%左右,下表给出LSTM,GRU和TCN等常用模型验证集的准确率:

模型准确率
LSTM

97.7000

TCN

96.1600

GRU

99.3600

(5)可视化训练过程

训练过程可视化工具是使用Tensorboard,使用方法,可参考这里:项目开发使用教程和常见问题和解决方法
在终端输入:
# 基本方法
tensorboard --logdir=path/to/log/
# 例如
tensorboard --logdir=work_space/GRU_LabelSmoothingCrossEntropy_20241004_223428_9301/log

可视化效果 

9cf309d5b40446c5801025091456c3c0.png

684d69473ccf4fa9958bd89783db9aa4.png

70e31395b8c742bda6f3dbf55cc4e0d5.png

3633e060393c418296daab267f20a688.png

8ceb953f365f4650b0a08f32d9fdaed5.png

(6)一些优化建议

如果想进一步提高准确率,可以尝试:

  1. 样本均衡: 建议进行样本均衡处理,避免长尾问题
  2. 调超参: 比如学习率调整策略,优化器(SGD,Adam等)
  3. 损失函数: 目前训练代码已经支持:交叉熵CrossEntropy,LabelSmoothing,可以尝试FocalLoss等损失函数

(7)一些运行错误处理方法

  • 项目不要出现含有中文字符的目录文件或路径,否则可能会出现很多异常!!!!!!!!


4. 模型测试效果

 demo.py文件用于推理和测试模型的效果,填写好配置文件,模型文件以及测试数据即可运行测试了

def get_parser():# 配置文件config_file = "work_space/GRU_LabelSmoothingCrossEntropy_20241004_223428_9301/config.yaml"# 模型文件model_file = "work_space/GRU_LabelSmoothingCrossEntropy_20241004_223428_9301/model/best_model_093_99.3600.pth"# 测试数据data_file = "data/val.csv"parser = argparse.ArgumentParser(description="Inference Argument")parser.add_argument("-c", "--config_file", help="configs file", default=config_file, type=str)parser.add_argument("-m", "--model_file", help="model_file", default=model_file, type=str)parser.add_argument("--data_file", help="data file", default=data_file, type=str)parser.add_argument("--device", help="cuda device id", default="cuda:0", type=str)return parser
#!/usr/bin/env bash
# Usage:
# python demo.py  -c "path/to/config.yaml" -m "path/to/model.pth" --data_file "path/to/data_file"python demo.py -c work_space/GRU_LabelSmoothingCrossEntropy_20241004_223428_9301/config.yaml -m work_space/GRU_LabelSmoothingCrossEntropy_20241004_223428_9301/model/best_model_093_99.3600.pth --data_file data/val.csv

运行测试结果: 

e487644f47a8490c9dc670b579f1e18b.png
f50ecf577be448c4b94671b7c3d54f1b.png
f1e081cd91464241951297194295ebea.png

61399cad72de4258be7ac2185104d801.png


5. 项目源码下载

【源码下载】请关注【AI吃大瓜】,回复关键字【心跳信号】

  • 项目提供心跳信号分类预测数数据集: 赛题提供train.csv和testA.csv数据,其中train.csv提供了label标签可用于模型训练,testA.csv用于打榜比赛,为了方面模型本地开发和调优,本项目将train.csv文件中的前5000行数据作为验证集val.csv,剩余的数据作为训练集train.csv。
  • 项目提供网络模型支持LSTM,GRU和TCN等常见的模型
  • 项目提供训练代码,损失函数支持交叉熵CrossEntropy,LabelSmoothing以及FocalLoss等损失函数
  • 项目提供已经训练好的模型,无需重新训练,即可运行demo.py测试效果

相关文章:

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型)

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型) 目录 Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型) 1. 项目说明 2. 数据说明 (1)心跳信号分类预测数据集 3. 模型训练 (1)项目安装 &…...

走进科学json版:在 JSON 格式中,字符串值必须使用双引号 “ 来界定,而不能使用单引号 ‘

走进科学疑难问题出现 在调试fastapi程序的时候,报错碰到422错误 INFO: 192.168.0.99:46536 - "POST /v1/chat/completions/ HTTP/1.1" 422 Unprocessable Entity 干净利索,只有这一句报错,不管代码里加入多少print语句查看…...

【C#】书籍信息的添加、修改、查询、删除

文章目录 一、简介二、程序功能2.1 Book类属性:方法: 2.2 Program 类 三、方法:四、用户界面流程:五、程序代码六、运行效果 一、简介 简单的C#控制台应用程序,用于管理书籍信息。这个程序将允许用户添加、编辑、查看…...

博泽Brose EDI项目案例

Brose 是一家德国的全球性汽车零部件供应商,主要为全球汽车制造商提供机电一体化系统和组件,涵盖车门、座椅调节系统、空调系统以及电动驱动装置等。Brose 以其高质量的创新产品闻名,在全球拥有多个研发和生产基地,是全球第五大家…...

Macos用brew安装Nodejs亲手教程

首先确保brew已安装,搜索node资源,命令如下: brew search nodejs 演示结果如下: 安装nodejs brew install node22 或 brew install node 出现如下界面 表示正在安装,安装成功后,提示如下信息&#xff1…...

开发一套ERP 第十弹 图片作为配置文件,本地读取图片,定时更新图片类型

echo Hello World在同一数据库中在建一个图床数据表,产品一,一对应,图片命名 最优的方案,使用 rust 在构建一个 http server 用于管理非数据库资源,也可以将来对接不同的图床,部署方便 考虑到数据库资源和图片资源,都可以被远程访问这种方法最佳...

终端环境下关闭显示器

终端环境下关闭显示器 使用vbetool vbetool 使用 lrmi 来运行视频 BIOS 中的代码。目前,它能够更改 DPMS 状态、保存/恢复视频卡状态并尝试从头开始初始化视频卡。 vbetool dpms off...

基于PySpark 使用线性回归、随机森林以及模型融合实现天气预测

基于PySpark 实现天气预测与模型集成 在大数据分析与机器学习领域,Spark 提供了强大的计算能力和灵活的扩展性。本文将介绍如何利用 PySpark 完成以下任务: 1、数据预处理:清洗和编码天气数据。 2、特征工程:合并数值和分类特征…...

Android Studio 右侧工具栏 Gradle 不显示 Task 列表

问题: android studio 4.2.1版本更新以后AS右侧工具栏Gradle Task列表不显示,这里需要手动去设置 解决办法: android studio 2024.2.1 Patch 2版本以前的版本设置:依次打开 File -> Settings -> Experimental 选项&#x…...

Linux详解:文件权限

文章目录 前言Linux文件权限基础文件成员与三组权限字符 权限的修改修改文件所有者总结 前言 在浩瀚的操作系统世界中,Linux以其开源、灵活和强大的特性,成为了服务器、开发环境以及众多个人用户的首选。而在Linux的众多特性中,文件权限机制…...

Linux条件变量线程池详解

一、条件变量 【互斥量】解决了线程间同步的问题,避免了多线程对同一块临界资源访问产生的冲突,但同一时刻对临界资源的访问,不论是生产者还是消费者,都需要竞争互斥锁,由此也带来了竞争的问题。即生产者和消费者、消费…...

CLIP模型也能处理点云信息

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

编译MT7620 OpenWrt的所有机型的固件

前置条件:准备VMware16Ubuntu16.04的编译环境 安装编译需要的插件 sudo apt-get install gcc g binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils libncurses5-dev ncurses-term zlib1g-dev gawk asciidoc libz-dev git-core uuid…...

C_字符串的一些函数

1.字符串输入函数 scanf("%s",数组名)&#xff1b; gets(数组名)&#xff1b; 区别&#xff1a; scanf(“%s”,数组名); 把空格识别为输入结束 #include <stdio.h>int main() {char a[10];printf("输入&#xff1a;");scanf("%s",a)…...

pytest自定义命令行参数

实际使用场景&#xff1a;pytest运行用例的时候&#xff0c;启动mitmdump进程试试抓包&#xff0c;pytest命令行启动的时候&#xff0c;传入mitmdump需要的参数&#xff08;1&#xff09;抓包生成的文件地址 &#xff08;2&#xff09;mitm的proxy设置 # 在pytest的固定文件中…...

【OpenAI库】从0到1深入理解Python调用OpenAI库的完整教程:从入门到实际运用

文章目录 Moss前沿AI一、初识OpenAI API1.1 获取API-Key&#xff08;两种方案&#xff09;1.2 安装OpenAI库 二、Python调用OpenAI API的基础设置2.1 设置API密钥和Base URL2.2 参数详解 三、构建一个简单的聊天应用3.1 创建聊天请求3.2 参数详解3.3 处理响应 四、完整代码示例…...

设计模式---建造者模式

建造者模式 一种创建型设计模式&#xff0c;它允许你一步一步地构建复杂对象。通过使用建造者模式&#xff0c;你可以将对象的构建过程与其表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。说白点就是&#xff0c;解决了构造函数创建对象的问题。 适用于那种构造函…...

安装MySQL 5.7 亲测有效

前言&#xff1a;本文是笔者在安装MySQL5.7时根据另一位博主大大的安装教程基础上做了一些修改而成 首先在这里表示对博主大大的感谢 下面附博主大大地址 下面的步骤言简意赅 跟着做就不会出错 希望各位读者耐下心来 慢慢解决安装中出现的问题~MySQL 5.7 安装教程&#xff08;全…...

delphi 12 idhttpsever(S)+idhttp(C) 实现简单的JSON API服务

这篇博客展示了如何使用Delphi创建一个简单的HTTP服务器&#xff0c;并处理GET和POST请求。服务器监听6600端口&#xff0c;响应JSON格式的数据。客户端通过IdHttp组件进行GET和POST请求&#xff0c;获取并显示服务器响应的内容。 http服务器测试代码 procedure TForm1.FormSh…...

SVM支持向量机分类——基于Python实现

SVM支持向量机分类 1.描述统计 from numpy import * from scipy import * from pandas import * import matplotlib.pyplot as pltimport seaborn as sns glassread_csv(../data/第5章数据/Glass.csv,sep,) glass.head() glass[Type].value_counts()Type 2 76 1 70 7 …...

k8s使用的nfs作为sc。

k8s使用的nfs作为sc。 当前出现一个问题&#xff1a; 1.有一个pod他是通过流进行文件解压并写入到nfs服务器对应的目录中。 2.一个大压缩包下有20多个压缩包&#xff0c;递归解压。解压完成后应该是20多个文件夹&#xff0c;文件夹下有.json文件。 3.pod中的程序解压后去找以.j…...

tp6 合成两个pdf文件(附加pdf或者替换pdf)

最近在做项目有个需求&#xff0c;项目中需要根据设置的html合同模板自动生成PDF合同供客户下载签署&#xff0c;并根据回传的已签署合同尾页来替换原来未签署合同的尾页&#xff0c;合成新的已签署合同文本。 读取两个PDF文件并合成的 具体代码记录如下&#xff1a; use set…...

SpringBoot

SpringBoot简介 SpringBoot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化Spring应用的初始搭建以及开发过程 SpringBoot快速入门 新建maven工程&#xff0c;导入SpringBoot父工程以及依赖 <?xml version"1.0" encoding"UTF-8"?>…...

2024第六届金盾信安杯Web 详细题解

比赛一共4道Web题,比赛时只做出三道,那道文件上传没有做出来,所以这里是另外三道题的WP 分别是 fillllll_put hoverfly ssrf fillllll_put 涉及: 绕过exit() 死亡函数 php://filter 伪协议配合base64加解密 一句话木马 题目源码&#xff1a; $content参数在开头被…...

The selected directory is not a valid home for Go SDK

在idea里配置go语言的环境时&#xff0c;选择go语言的安装目录&#xff0c;一直提示这个 The selected directory is not a valid home for Go SDK后来查了一下&#xff0c;发现原来idea识别不出来 需要改一下配置文件&#xff0c;找到go环境的安装目录&#xff0c;我是默认安…...

《智能体雏形开发(高阶实操)》开发计划概述

智能体雏形开发计划 通过本计划,逐步完成一个可以真实运行的智能体雏形。 最终完成一个**“用户日志文件生成日报,日报再进一步汇总成周报”**的任务驱动型智能体雏形 第一阶段:基础准备与环境搭建 1. 学习基础知识 了解智能体的概念、类型和技术框架。学习大模型(如阿里…...

【查询基础】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…...

【Linux】设计文件系统(C实现)

要求&#xff1a; (1)可以实现下列几条命令 dir 列文件目录 create 创建文件 delete 删除文件 read 读文件 write 写文件 (2)列目录时要列出文件名、存取权限&#xff08;八进制&#xff09;、文件长度、时间&#xff08;创建时间&#xff0c;修改时间以及…...

Redis+Caffeine 多级缓存数据一致性解决方案

RedisCaffeine 多级缓存数据一致性解决方案 背景 之前写过一篇文章RedisCaffeine 实现两级缓存实战&#xff0c;文章提到了两级缓存RedisCaffeine可以解决缓存雪等问题也可以提高接口的性能&#xff0c;但是可能会出现缓存一致性问题。如果数据频繁的变更&#xff0c;可能会导…...

SpringMVC(二)

Model 以Map方式进行存储&#xff0c;用于向作用域中存值。 注意&#xff1a;在Model中增加模型数据&#xff0c;若不指定key&#xff0c;则默认使用对象的类型作为key Controller //控制器类 public class IndexController {RequestMapping("/index3")public Strin…...

leetcode--螺旋矩阵

LCR 146.螺旋遍历二维数组 给定一个二维数组 array&#xff0c;请返回「螺旋遍历」该数组的结果。 螺旋遍历&#xff1a;从左上角开始&#xff0c;按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c;然后再进入内部一层重复相同的步骤&#xff0c;直到提取完所有元…...

动手学深度学习10.5. 多头注意力-笔记练习(PyTorch)

本节课程地址&#xff1a;多头注意力代码_哔哩哔哩_bilibili 本节教材地址&#xff1a;10.5. 多头注意力 — 动手学深度学习 2.0.0 documentation 本节开源代码&#xff1a;...>d2l-zh>pytorch>chapter_multilayer-perceptrons>multihead-attention.ipynb 多头注…...

Selenium3+Python如何操作键盘

selenium操作键盘&#xff0c;需要导入Keys类&#xff1a;“from selenium.webdriver.common.keys import Keys” 调用键盘操作的快捷键的方法 &#xff1a; 单键值&#xff1a;直接传入对应的键值“element.send_keys”(快捷键的键值) 组合键&#xff1a;键值之间由逗号分隔…...

数据仓库的概念

先用大白话讲一下&#xff0c;数据仓库的主要目的就是存储和分析大量结构化数据的。 > 那么它的核心目的是&#xff1a;支持商业智能&#xff08;BI&#xff09;和决策支持系统&#xff0c;也就是说&#xff0c;它不仅仅是为了存储&#xff0c;更重要的是为了分析提供便利。…...

初级数据结构——二叉搜索树

目录 前言一、定义二、基本操作三、时间复杂度分析四、变体五、动态图解六、代码模版七、经典例题[1.——700. 二叉搜索树中的搜索](https://leetcode.cn/problems/search-in-a-binary-search-tree/)代码题解 [2.——938. 二叉搜索树的范围和](https://leetcode.cn/problems/ra…...

配置宝塔php curl 支持http/2 发送苹果apns消息推送

由于宝塔面板默认的php编译的curl未加入http2的支持&#xff0c;如果服务需要使用apns推送等需要http2.0的访问就会失败&#xff0c;所以重新编译php让其支持http2.0 编译方法&#xff1a; 一、安装nghttp2 git clone https://github.com/tatsuhiro-t/nghttp2.git cd nghttp…...

ARP表、MAC表、路由表的区别和各自作用

文章目录 ARP表、MAC表、路由表的区别和各自作用同一网络内:ARP表request - 请求reply - 响应 MAC地址在同一网络内,交换机如何工作? 不同网络路由表不同网络通信流程PC1到路由器路由器到PC2流程图 简短总结 ARP表、MAC表、路由表的区别和各自作用 拓扑图如下: 同一网络内:…...

限定符使用

正则表达式的元字符一次一般只能匹配一个位置或一个字符,如果想要匹配零个、一个或多个字符时,则需要使用限定符。限定符用于指定允许特定字符或字符集自身重复出现的次数。常用限定符如下: <asp:TextBox [^>]> 正则表达式字符类[^>]匹配除过“>”之外的任何字…...

【k8s】创建基于sa的token的kubeconfig

需求 创建一个基于sa的token的kubeconfig文件&#xff0c;并用这个文件来访问集群。 具体创建sa 和sa的token请参考文章: 【k8s】给ServiceAccount 创建关联的 Secrets-CSDN博客 创建sa apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:namespace: jtkjdevnam…...

计算机网络——不同版本的 HTTP 协议

介绍 HTTP&#xff0c;即超文本传输协议&#xff08;HyperText Transfer Protocol&#xff09;&#xff0c;是应用层的一个简单的请求-响应协议&#xff0c;它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。本文将介绍 HTTP 协议各个版本。 HTTP/1.0 HTTP/1…...

【Linux】vim编辑器练习

1.在/tmp目录下建立一个名为mytest的目录&#xff0c;进入mytest目录 (1)进入/tmp目录 cd /tmp &#xff08;2&#xff09;创建mytest目录 mkdir mytest &#xff08;3&#xff09;查看是否创建成功 ls 或 ls -l &#xff08;4&#xff09;进入mytest目录 cd mytest …...

StarRocks关于ConcurrentModificationException 问题的解决

背景 本文基于 StarRocks 3.1.7 目前在基于Starrocks做一些数据分析的操作(主要是做一些简单的查询)&#xff0c;同事遇到了一些并发的问题: ontent:2024-11-27 07:04:34,048 WARN (starrocks-mysql-nio-pool-214933|3593819) [StmtExecutor.execute():643] execute Exceptio…...

MySQL MVCC 介绍

MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种并发控制机制&#xff0c;用于在多个并发事务同时读写数据库时保持数据的一致性和隔离性。MVCC通过在每个数据行上维护多个版本的数据来实现。当一个事务要对数据库中的数据进行修改时&#xff0c;MVCC不会…...

HTML 快速上手

目录 一. HTML概念 二. HTML标签 1. 标题标签 2. 段落标签 3. 换行标签 4. 图片标签 5. 超链接标签 6. 表格标签 7. 表单标签 7.1 form 标签 7.2 input 标签 (1) 文本框 (2) 单选框 (3) 密码框 (4) 复选框 (5) 普通按钮 (6) 提交按钮 8. select标签 9. 无语义…...

【树莓派5】移动热点获取树莓派IP并初次登录SSH

本篇文章包含的内容 1 打开系统热点2 烧录系统设置3 配置 MobaXterm4 初次启动树莓派配置选项4.1 换源4.2 更新软件包4.3 安装vim编辑器4.4 更改CPU FAN温度转速 Windows版本&#xff1a;Windows11 24H2树莓派&#xff1a;树莓派5&#xff0c;Raspberry Pi 5SSH软件&#xff1a…...

用html+jq实现元素的拖动效果——js基础积累

用htmljq实现元素的拖动效果 效果图如下&#xff1a; 将【item10】拖动到【item1】前面 直接上代码&#xff1a; html部分 <ul id"sortableList"><li id"item1" class"w1" draggable"true">Item 1</li><li …...

Zookeeper的通知机制是什么?

大家好&#xff0c;我是锋哥。今天分享关于【Zookeeper的通知机制是什么?】面试题。希望对大家有帮助&#xff1b; Zookeeper的通知机制是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper的通知机制主要通过Watcher实现&#xff0c;它是Zookeeper客…...

VSCode如何关闭Vite项目本地自启动

某些情况下VSCode打开Vite项目不需要自动启动&#xff0c;那么如何关闭该功能 文件>首选项>设置 搜索vite 将Vite:Auto Start 勾选取消即可...

微软表示不会使用你的 Word、Excel 数据进行 AI 训练

​微软否认使用 Microsoft 365 应用程序&#xff08;包括 Word、Excel 和 PowerPoint&#xff09;收集数据来训练公司人工智能 (AI) 模型的说法。 此前&#xff0c;Tumblr 的一篇博文声称&#xff0c;雷德蒙德使用“互联体验”功能抓取客户的 Word 和 Excel 数据&#xff0c;用…...

Redis缓存设计与性能优化

多级缓存架构 缓存设计 缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c;缓存层和存储层都不会命中&#xff0c;通常出于容错的考虑&#xff0c;如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c;失去了…...