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

7.训练篇5-毕设

使用23w张数据集-vit-打算30轮-内存崩了-改为batch_size = 8  

 我准备用23w张数据集,太大了,这个用不了,所以

是否保留 .stack() 加载所有图片?情况建议
✅ 小数据集(<2w张,图像小)想加快速度可以用
❌ 大数据集(>5w张图)Colab / 本地内存有限❌ 不建议,容易爆 RAM
✅ 你正在用 Dataloader说明已动态加载不需要这段代码

网上经验

模型图片大小batch_size 安全值(Colab Pro)
ViT-B/16224×2248 非常安全(推荐)
ViT-B/16224×224⚠️ 16 可能会炸(尤其 A100/T4)
ViT-S/16224×22416~32 都行
ViT-Tiny / DeiT-Tiny224×22432~64 可尝试

什么是“骨架图”?

我们说“骨架图”,就是指:

  • 神经网络的“结构组成”

  • 包括:每一层的类型(如 Conv2d, Linear, Transformer 等)

  • 每层的参数维度(比如 Linear(768 → 29)

  • 模型的前向传递路线(从输入 → 输出)

ViT-B/16 模型骨架图包含:

模块名内容简介
conv_proj把图像分成 patch(切成小块),变成 768 维向量
encoder12 层 Transformer,每层包括 self-attention + MLP
heads线性分类层:将最终特征 [768] 映射到你要的类别(比如 29)

举个例子(完整流程):

如果你输入一张图片 img = [1, 3, 224, 224]:(1指batch_size)

  1. conv_proj 把它切成 16x16 的 patch(共 196 个 patch),每个 patch 映射为 768 维向量

  2. Transformer 对 768 的向量做注意力建模(12 层)

  3. 取出第一个“分类 token”的输出,传给 Linear(768 → num_classes)num_classes=29,这里

  4. 输出结果为 [1, num_classes],比如 [1, 29]

ViT 是一种用“文字处理的方式”来看图片的模型。

把图像当成一串“小块块”(Patch),就像文本中的“单词”,然后用 Transformer 来分析这些块的关系。

类比图像与文字:

文本(NLP)图像(ViT)
单词 Word图像小块 Patch
词向量Patch 向量(Embedding)
BERT 模型ViT 模型(结构几乎一样)
输入图像:[B, 3, 224, 224]表示你输入的是 batch_size = B 张 RGB 彩色图像,分辨率为 224x224。│
【步骤1】Conv2d 分块 → Patch Embedding(patch 大小为 16x16)│ 得到 patch 数量:224/16 * 224/16 = 196个 patch(再加1个分类Token)│ 每个 patch 映射为 768维向量↓
总输入:[B, 197, 768] (197 = 196 patch + 1 cls_token)【步骤2】加上位置编码(告诉模型每个 patch 的位置)↓【步骤3】12 层 Transformer 编码器(每层都包含以下结构):├── LayerNorm├── Multi-head Self Attention(观察所有 patch 之间的关系)├── MLP(前馈网络:两个 Linear + GELU 激活)└── Residual(残差连接)↓【步骤4】取出第一个位置的输出(cls_token)↓【步骤5】传入全连接层(Linear(768 → 29)) → 输出分类结果
步骤模块输出 shape(假设 B=8)说明
输入图像img[8, 3, 224, 224]一批图像
Patch Embeddingconv_proj[8, 768, 14, 14]用卷积切成 14x14 个 patch,每个是 768 维向量
→ Flatten + permute.reshape()[8, 196, 768]展平为 patch 序列:14×14 = 196 个 patch
加 CLS tokencls_token + concat[8, 197, 768]加 1 个 [CLS] 向量在开头,共 197 个 token
加位置编码pos_embedding[8, 197, 768]给每个 patch 一个位置信息(加法)

Encoder Block × 12 层:

每层结构都一样,输入输出 shape 都是:

Layer input: [8, 197, 768] Layer output: [8, 197, 768]

说明:每层的输出仍然是 197 个 token(含CLS),每个 token 是 768 维特征。

最终输出阶段:

步骤模块输出 shape
分类 tokenx[:, 0, :][8, 768] → 取第1个CLS token
全连接层Linear(768 → num_classes)[8, 29](假设你要分29类)

使用的ViT-B/16 模型

名字含义
ViTVision Transformer(图像版的 Transformer)
BBase(中等模型大小,有 12 层 encoder)
16Patch 大小为 16×16 像素

使用的步骤,新手小白

阶段要做的事示例代码 / 解释
① 加载预训练模型使用 torchvision 的 vit_b_16✅ 一行代码就能加载
② 修改输出层替换为自己的分类数,比如 29 类model.heads.head = nn.Linear(768, 29)
③ 预处理图像必须是 224×224 大小,标准化transforms.Resize + Normalize
④ 训练模型和 ResNet 一样用 dataloader训练 epoch,记录 loss 和 acc
⑤ 保存 / 加载模型torch.save() + torch.load()保存好 .pth 文件
⑥ 预测一张图像图像 → Tensor → 模型预测用 softmax 和 argmax 得到分类结果
⑦ 可视化 attention(进阶)可选:叠图显示 ViT 看哪里了用 attention map(可视化热图)

 只是做一个手势识别任务(而不是 ImageNet 等通用视觉任务),完全没必要用到全部 23 万张数据,使用的是预训练的 ViT(pretrained=True),你只需要每类几百到上千张图像,就能训练出一个效果不错的模型。

用 ViT-B/16 训练 batch_size=8 的一轮(epoch)
在 A100 上 大约每 step 0.05 - 0.08 秒(视数据加载效率不同)

如果是23w张大概需要14h

原因说明
✅ ViT 已经在 ImageNet 上学过了它早就“学会看图”了,你只需要教它你手势的分类方式
✅ 手势分类是“小数据任务”一般只需要几十个类,图像也比较规范,模型很好学
✅ 23w 张图片训练成本高占用 GPU 时间大、调参慢、不适合原型验证

以29类手势为例

每类图片数总图片数适用阶段训练建议
1002,900快速验证快速调试训练流程,10分钟出结果
50014,500初始训练可达到不错效果
1,00029,000稳定训练精度较好,不容易过拟合
3,000+87,000+高精度训练适合微调完整 ViT,建议 batch_size 大一点
23万张实验冗余除非你做的是论文级 benchmark,否则不建议一开始就全用

 实际证明我前面想的不太对

29类-每类1500张-batch_size=32-训练轮数25

这个准确率

粘贴的,目前识别率可以,我在想是不是因为其他网络训练的数据集没有没那么多的原因

ViT 使用 Patch + Linear(MLP) 取代 CNN

意思是:

传统的 CNN 是用卷积核去提取图像的特征,
ViT 把图片分成一个个小块(Patch),
然后把这些块“摊平”,送入一个 全连接层(Linear)
相当于在「不使用卷积」的情况下提取图像特征。

CNN 是怎么处理图像的?

CNN 会:

  • 使用 卷积核 在图像上滑动,提取「局部特征」(比如边缘、纹理)

  • 层层提取,直到得到高层语义(比如眼睛、猫、狗等)

  • 它保留了空间结构信息(哪儿亮、哪儿暗)

2. ViT 的方式不同:

ViT 把图像当作一个 序列 来处理(就像处理一串句子)

步骤如下:

步骤说明
Step 1:划分 Patch把图片分成很多小块,比如 16×16 的小方格
Step 2:展平 Flatten把每个 Patch 展成一个向量,比如 [16×16×3] 变成 [768]
Step 3:Linear 映射每个向量送入一个全连接层 Linear(768, D) 映射到 D 维
Step 4:加位置编码为了保留“每个 Patch 在哪”的信息
Step 5:送入 Transformer 编码器用注意力机制提取全局特征
Step 6:分类用一个 [CLS] token 输出最终类别

CNN:

  • 用卷积核滑动,提取图像局部结构信息。

  • 空间感知强。

  • 不适合长期依赖(大图全局信息难整合)

 ViT:

  • 把图像切成 Patch,当作“词”看待。

  • 不用卷积核,全靠注意力机制(Attention)和全连接层(MLP) 学特征。

  • 非常适合提取全局依赖信息。
     举个比喻!

方法比喻
CNN用放大镜一块块看图像细节(边缘、纹理),一步步整合
ViT把整张图像分成小纸片,然后把每片数字交给语言专家(Transformer)来分析整体意思

 

相关文章:

7.训练篇5-毕设

使用23w张数据集-vit-打算30轮-内存崩了-改为batch_size 8 我准备用23w张数据集&#xff0c;太大了&#xff0c;这个用不了&#xff0c;所以 是否保留 .stack() 加载所有图片&#xff1f;情况建议✅ 小数据集&#xff08;<2w张&#xff0c;图像小&#xff09;想加快速度可…...

java数据结构-哈希表

什么是哈希表 最理想的搜索方法 , 即就是在查找某元素时 , 不进行任何比较的操作 , 一次直接查找到需要搜索的元素 , 可以达到这种要求的方法就是哈希表. 哈希表就是通过构造一种存储结构 , 通过某种函数使元素存储的位置与其关键码位形成一 一映射的关系 , 这样在查找元素的时…...

Linux错误(6)X64向量指令访问地址未对齐引起SIGSEGV

Linux错误(6)X64向量指令访问地址未对齐引起SIGSEGV Author: Once Day Date: 2025年4月4日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: Linux实…...

SpringBoot配置文件多环境开发

目录 一、设置临时属性的几种方法 1.启动jar包时&#xff0c;设置临时属性 ​2.idea配置临时属性 3.启动类中创建数组指定临时属性 二、多环境开发 1.包含模式 2.分组模式 三、配置文件的优先级 1.bootstrap 文件优先&#xff1a; 2.特定配置文件优先 3.文件夹位置优…...

解锁健康密码:拥抱活力养生生活

在追求高品质生活的今天&#xff0c;健康养生成为了人们关注的焦点。它不仅关乎当下的生活质量&#xff0c;更是对未来的有力投资。 合理的饮食是健康养生的基石。一日三餐&#xff0c;应遵循 “五谷为养&#xff0c;五果为助&#xff0c;五畜为益&#xff0c;五菜为充” 的原则…...

手动将ModelScope的模型下载到本地

一、ModelScope 介绍 ModelScope 官网地址&#xff1a; https://www.modelscope.cn/home 模型库地址&#xff1a;https://www.modelscope.cn/models 文档中心&#xff1a;https://www.modelscope.cn/docs/home ModelScope旨在打造下一代开源的模型即服务共享平台&#xff0c;为…...

【Git】“warning: LF will be replaced by CRLF”的解决办法

一、原因分析 不同操作系统的换行符标准不同&#xff1a; • Windows&#xff1a;使用 CRLF&#xff08;\r\n&#xff09;表示换行&#xff1b; • Linux/Mac&#xff1a;使用 LF&#xff08;\n&#xff09;表示换行 Git 检测到本地文件的换行符与仓库设置或目标平台不兼容时…...

Linux常用基础命令应用

目录 一、文件与目录管理 1. ​​基础导航与查看​​ 2. ​​文件操作核心命令​​ 二、文本处理与日志分析 1. ​​查看与过滤​​ 2. ​​组合命令与管道​​ 三、系统管理与权限控制 1. ​​进程与资源监控​​ 2. ​​权限与用户管理​​ 四、网络与远程操作 1. …...

C++11可变参数模板单例模式

单例模式 该示例代码采用C11标准&#xff0c;解决以下问题&#xff1a; 通过类模板函数实现不同类型单例&#xff1b;单例类构造函数支持不同的个数&#xff1b;消除代码重复 示例代码 .h文件如下&#xff1a; //C11Singleton.h文件 #pragma oncetemplate <typename T&…...

JVM 有哪些垃圾回收器

垃圾收集算法 标记-复制算法(Copying): 将可用内存按容量划分为两个区域,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面, 然后再把已使用过的内存空间一次清理掉。 标记-清除算法(Mark-Sweep): 算法分为“标记” 和“清除”两个…...

6. 链式结构(Chain)的奥秘:从LLMChain到RouterChain

引言&#xff1a;从“单兵作战”到“流水线革命” 2023年某电商平台客服系统因处理复杂咨询需手动串联多个AI模块&#xff0c;平均响应时间长达12秒。引入LangChain链式架构后&#xff0c;工单处理速度提升8倍&#xff0c;错误率下降45%。本文将深入解析链式编程范式&#xff…...

TypeScript语言的操作系统原理

TypeScript语言的操作系统原理 引言 操作系统是计算机系统中最重要的组成部分之一&#xff0c;它为应用程序提供了一个运行环境&#xff0c;并管理着计算机硬件和软件资源。随着编程语言的发展&#xff0c;特别是TypeScript的流行&#xff0c;许多开发者开始探索将这种强类型…...

时间序列入门

时间序列入门 第一章 时间序列概述1.1 时间序列简介1.1.1 时间序列定义1.1.2 时间序列分量1.1.3 时间序列分类 第二章 时间序列绘图2.1 单变量时序绘制2.2 多变量时序绘制 第一章 时间序列概述 1.1 时间序列简介 1.1.1 时间序列定义 在进行时间序列之前&#xff0c;需要学习…...

VirtualBox安装FnOS

1.下载FnOS镜像 下载网址&#xff1a; https://www.fnnas.com/2.创建虚拟机 虚拟机配置如图所示&#xff08;注意操作系统类型和网卡配置&#xff09; &#xff08;注意启动顺序&#xff09; 3.启动虚拟机 网卡类型选择桥接的Virtual Adapter 如果没有IP地址或者IP地址无法…...

函数栈帧的创建与销毁

函数栈帧的创建与销毁 函数栈帧简介认识寄存器解析函数栈帧的创建与销毁 函数栈帧简介 我们在编程的过程中经常会听见函数栈帧这个词汇&#xff0c;那到底什么是函数栈帧呢&#xff1f;接下来就为大家解答一下&#xff0c;我们都知道&#xff0c;一个函数的创建是需要去开辟空…...

Scheme语言的算法

Scheme语言的算法探索 引言 Scheme是一种以表达式为基础的编程语言&#xff0c;属于Lisp家族&#xff0c;因其简洁、灵活的语法而受到广泛关注。Scheme不仅适合教学&#xff0c;还被用于实际应用开发和研究。本文将深入探讨Scheme语言的算法&#xff0c;包括其基本特性、常用…...

[C++面试] new、delete相关面试点

一、入门 1、说说new与malloc的基本用途 int* p1 (int*)malloc(sizeof(int)); // C风格 int* p2 new int(10); // C风格&#xff0c;初始化为10 new 是 C 中的运算符&#xff0c;用于在堆上动态分配内存并调用对象的构造函数&#xff0c;会自动计算所需内存…...

(回滚莫队)洛谷 P10268 符卡对决 题解

居然还没调出来&#xff1f;感觉是数据类型的问题&#xff0c;真是吓人。先把思路写一下吧。 题意 灵梦一共有 n n n 张符卡&#xff0c;每张卡都有一个能力值&#xff0c;对于第 i i i 张卡&#xff0c;它的能力值为 a i a_i ai​&#xff0c;现在她想从中选出两张符卡并…...

C语言复习笔记--指针(3)

接上篇文章C语言复习笔记--指针(2)-CSDN博客我们继续进行指针的复习. 二级指针 指针变量也是变量&#xff0c;是变量就有地址&#xff0c;那指针变量的地址取出来后要存在在什么变量中呢?这就是⼆级指针. ⼆级指针的运算见下: 指针数组 指针数组概念 既然要联系数组和指针就涉…...

Fastjson 处理 JSON 生成与解析指南

Fastjson 是阿里巴巴开源的高性能 JSON 库&#xff0c;适用于 Java 对象的序列化&#xff08;生成 JSON&#xff09;和反序列化&#xff08;解析 JSON&#xff09;。以下是详细使用指南&#xff1a; 1. 添加依赖 <dependency><groupId>com.alibaba</groupId>…...

深度学习数据集划分比例多少合适

在机器学习和深度学习中&#xff0c;测试集的划分比例需要根据数据量、任务类型和领域需求灵活调整。 1. 常规划分比例 通用场景 训练集 : 验证集 : 测试集 60% : 20% : 20% 适用于大多数中等规模数据集&#xff08;如数万到数十万样本&#xff09;&#xff0c;平衡了训练数…...

查询当前用户的购物车和清空购物车

业务需求&#xff1a; 在小程序用户端购物车页面能查到当前用户的所有菜品或者套餐 代码实现 controller层 GetMapping("/list")public Result<List<ShoppingCart>> list(){List<ShoppingCart> list shoppingCartService.shopShoppingCart();r…...

大模型如何引爆餐饮与电商行业变革

大模型如何引爆餐饮与电商行业变革&#xff1f; 一、时代背景&#xff1a;大模型重构产业逻辑的底层动力 1. 技术跃迁催生效率革命 2025年&#xff0c;大模型技术迎来"普惠临界点"。李开复在中关村论坛指出&#xff0c;大模型推理成本每年降低10倍&#xff0c;使得…...

【MySQL】01.MySQL环境安装

注意&#xff1a;在MYSQL的安装与卸载中&#xff0c;需要使用root用户进行。 一、卸载不必要的环境 • 查看是否有运行的服务 [rootVM-24-10-centos etc]# ps axj |grep mysql1 22030 22029 22029 ? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --pid-fi…...

java 匿名内部类 和 Lambda 表达式

java 匿名内部类 和 Lambda 表达式 一、匿名内部类1.1说明1.2 匿名内部类的作用1.3 特点1.4 接口的正常使用情况&#xff08;抽象类同理&#xff09;1.5 通过局部内部类使用接口&#xff08;抽象类同理&#xff09;1.6 通过匿名内部类使用接口&#xff08;抽象类同理&#xff0…...

Linux系统调用编程

进程和线程 进程是操作系统资源分配的基本单位&#xff0c;拥有独立的地址空间、内存、文件描述符等资源&#xff0c;进程间相互隔离。每个进程由程序代码、数据段和进程控制块&#xff08;PCB&#xff09;组成&#xff0c;PCB记录了进程状态、资源分配等信息。 线程是…...

Redis 数据类型详解

Redis 数据类型详解 Redis 是一个高性能的键值存储系统&#xff0c;支持多种数据类型&#xff0c;每种类型都有其特定的使用场景和操作命令。以下是 Redis 主要数据类型的详细介绍&#xff1a; 一、基本数据类型 1. String&#xff08;字符串&#xff09; 特点&#xff1a;…...

orangepi zero烧录及SSH联网

下载对应版本的armbian镜像 armbian的默认用户root&#xff0c;默认密码&#xff1a;1234 下载烧录工具win32diskimager https://sourceforge.net/projects/win32diskimager/files/Archive/ 插入16G以上TF卡&#xff0c;使用win32diskimager烧录armbian镜像 烧录完毕后用l…...

七均线策略思路

一种基于移动平均线的交易策略&#xff0c;具体如下&#xff1a; 1. 移动平均线计算&#xff1a; 计算了六个不同周期的收盘价移动平均值&#xff0c;分别为MA5、MA10、MA20、MA30、MA40和MA60。 2. 买入条件&#xff08;BK&#xff09;&#xff1a; 当满足以下所有条件时执行买…...

【python脚本】基于pyautogui的python脚本

一、什么是自动化 自动化是指使用技术手段模拟人工&#xff0c;执行重复性任务。准确率100%&#xff0c;高于人工。 自动化应用场景&#xff1a; 自动化测试自动化运维自动化办公自动化游戏 二、pyautogui的使用 先使用 pip install pyautogui 指令安装这个第三方库 2.1 …...

人工智能时代人才培养的变革路径:模式创新、能力重塑与认证赋能

在科技日新月异的今天,人工智能(AI)已成为推动社会进步与经济发展的核心力量。从自动驾驶到医疗诊断,从金融分析到教育创新,AI的触角已延伸至人类生活的每一个角落。这一变革不仅重塑了产业格局,更对人才培养提出了前所未有的挑战与机遇。在人工智能时代,如何培养适应未…...

xpath定位

一、路径符号核心区别&#xff08;表格速查&#xff09; 符号名称作用范围典型使用场景性能影响/单斜杠./ 相对路径直接子级, /绝对路劲-根路径精确层级定位高效//双斜杠//当前元素下开始查找&#xff0c;可以跨嵌套层模糊层级/跨嵌套定位较低效 一、XPath基础定位类型&#…...

Python列表(List)深度解析

列表(List)是Python中最基础且强大的数据结构之一&#xff0c;但它的底层实现和特性远比表面看起来复杂。本文将深入探讨列表的各个方面。 1. 列表基础特性 1.1 可变序列类型 lst [1, 2, 3] lst[1] 20 # 可变性1.2 异构容器 mixed [1, "hello", 3.14, [1, 2]…...

Mybatis---入门

1. 什么是MyBatis? MyBatis是⼀款优秀的 持久层 框架&#xff0c;⽤于简化JDBC的开发。 MyBatis本是 Apache的⼀个开源项⽬iBatis&#xff0c;2010年这个项⽬由apache迁移到了google code&#xff0c;并且改名为MyBatis 。2013年11⽉迁移到Github. 官⽹&#xff1a;MyBa…...

FPGA--HDLBits网站练习

目录 用状态机编写一个 LED流水灯代码 CPLD和FPGA芯片 CPLD&#xff08;复杂可编程逻辑器件&#xff09; FPGA&#xff08;现场可编程门阵列&#xff09; Verilog练习 基本 向量 用状态机编写一个 LED流水灯代码 往期作业已完成&#xff0c;博客地址&#xff1a; FPGA…...

《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 4】【Qemu 如何模拟numa架构】

我们在学习 linux 内核时&#xff0c;会涉及到很多 numa 的知识&#xff0c;那我们该如何在 qemu 中模拟这种情况&#xff0c;来配合我们的学习呢&#xff1f; 我们该如何模拟 如下的 numa 架构 Qemu 模拟 NUMA 架构 -M virt,gic-version3,virtualizationon,typevirt \ -cp…...

如何分析 jstat 统计来定位 GC?

全文目录&#xff1a; 开篇语前言摘要概述jstat 的核心命令与参数详解基本命令格式示例 jstat 输出解读主要字段含义 典型 GC 问题分析案例案例 1&#xff1a;年轻代 GC 过于频繁案例 2&#xff1a;老年代发生频繁 Full GC案例 3&#xff1a;元空间&#xff08;Metaspace&#…...

Day51 | 3. 无重复字符的最长子串、12. 整数转罗马数字、49. 字母异位词分组、73. 矩阵置零

3. 无重复字符的最长子串 题目链接&#xff1a;3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 题目难度&#xff1a;中等 代码&#xff1a; class Solution {public int lengthOfLongestSubstring(String s) {Set<Character> setnew HashSet<&…...

【Linux系统编程】进程概念,进程状态

目录 一&#xff0c;操作系统&#xff08;Operator System&#xff09; 1-1概念 1-2设计操作系统的目的 1-3核心功能 1-4系统调用和库函数概念 二&#xff0c;进程&#xff08;Process&#xff09; 2-1进程概念与基本操作 2-2task_struct结构体内容 2-3查看进程 2-4通…...

第二十八章:Python可视化图表扩展-和弦图、旭日图、六边形箱图、桑基图和主题流图

一、引言 在数据可视化领域&#xff0c;除了常见的折线图、柱状图和散点图&#xff0c;还有一些高级图表类型可以帮助我们更直观地展示复杂数据关系。本文将介绍五种扩展图表&#xff1a;和弦图、旭日图、六边形箱图、桑基图和主题流图。这些图表在展示数据关系、层次结构和流量…...

深入理解C++引用:从基础到现代编程实践

一、引用的本质与基本特性 1.1 引用定义 引用是为现有变量创建的别名&#xff0c;通过&符号声明。其核心特点&#xff1a; 必须初始化且不能重新绑定 与被引用变量共享内存地址 无独立存储空间&#xff08;编译器实现&#xff09; 类型必须严格匹配 int value 42; in…...

OpenVLA-OFT——微调VLA的三大关键设计:支持动作分块的并行解码、连续动作表示以及L1回归目标

前言 25年3.26日&#xff0c;这是一个值得纪念的日子&#xff0c;这一天&#xff0c;我司「七月在线」的定位正式升级为了&#xff1a;具身智能的场景落地与定制开发商 &#xff0c;后续则从定制开发 逐步过渡到 标准产品化 比如25年q2起&#xff0c;在定制开发之外&#xff0…...

linux3 mkdir rmdir rm cp touch ls -d /*/

Linux 系统的初始目录结构遵循 FHS&#xff08;Filesystem Hierarchy Standard&#xff0c;文件系统层次标准&#xff09;&#xff0c;定义了每个目录的核心功能和存储内容。以下是 Linux 系统初始安装后的主要目录及其作用&#xff1a; 1. 核心系统目录 目录用途典型内容示例…...

TDengine 中的视图

简介 从 v3.2.1.0 开始&#xff0c;TDengine 企业版提供视图功能&#xff0c;便于用户简化操作&#xff0c;提升用户间的分享能力。 视图&#xff08;View&#xff09;本质上是一个存储在数据库中的查询语句。视图&#xff08;非物化视图&#xff09;本身不包含数据&#xff…...

算法设计学习9

实验目的及要求&#xff1a; 通过排序算法的实验&#xff0c;旨在深化学生对不同排序算法原理和性能的理解&#xff0c;培养其分析和比较算法效率的能力。通过实际编程&#xff0c;学生将掌握排序算法的实现方法&#xff0c;了解不同算法的优劣&#xff0c;并通过性能测试验证其…...

PGSQL 对象创建函数生成工具

文章目录 代码结果 代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>PGSQL 函数生成器</tit…...

企业安全——FIPs

0x00 前言 先来看一道题目。这道题目涉及到的就是道德规范和互联网相关内容&#xff0c;本文会对相关内容进行描述和整理。 正确答案是&#xff1a;D 注意FIPs的主要目的是为了限制&#xff0c;也就是针对数据的守则。 0x01 RFC 1087 1989年1月 互联网架构委员会 IAB 发布了…...

历年跨链合约恶意交易详解(二)——XBridge20240424攻击

漏洞合约函数 /*** dev token owner can list the pair of their token with their corresponding chain id* param baseToken struct that contains token address and its corresponding chain id* param correspondingToken struct that contains token address and its cor…...

《AI大模型开发笔记》MCP快速入门实战(一)

目录 1. MCP入门介绍 2. Function calling技术回顾 3. 大模型Agent开发技术体系回顾 二、 MCP客户端Client开发流程 1. uv工具入门使用指南 1.1 uv入门介绍 1.2 uv安装流程 1.3 uv的基本用法介绍 2.MCP极简客户端搭建流程 2.1 创建 MCP 客户端项目 2.2 创建MCP客户端…...

01背包问题:详细解释为什么重量维度必须从大到小遍历。

01背包 问题描述 题目链接&#xff1a;https://www.lanqiao.cn/problems/1174/learning/?page1&first_category_id1&problem_id1174 特点&#xff1a;每件物品只能拿或者不拿。 解法1 设置状态&#xff1a;dp[i][j]指的是前i件物品重量为j的最大价值。 第i件物品…...