AI知识补全(十四):零样本学习与少样本学习是什么?
名人说:一笑出门去,千里落花风。——辛弃疾《水调歌头·我饮不须劝》
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
上一篇:AI知识补全(十三):注意力机制与Transformer架构是什么?
目录
- 一、引言
- 二、核心概念解析
- 1. 零样本学习(Zero-Shot Learning)
- 2. 少样本学习(Few-Shot Learning)
- 3. 关键区别与联系
- 三、工作原理与实现方法
- 1. 零样本学习的工作原理
- 2. 少样本学习的工作原理
- 3. Python实现示例
- 四、应用场景与挑战
- 1. 应用场景
- 2. 挑战与解决方向
- 五、最新研究进展与趋势
- 六、实践建议与总结
- 1. 实践建议
- 2. 总结
- 参考文献
很高兴你打开了这篇博客,更多AI知识,请关注我、订阅专栏《AI大白话》,内容持续更新中…
一、引言
在传统机器学习和深度学习领域,模型的训练通常依赖于大量标注数据。例如,要训练一个能识别猫和狗的图像分类器,我们需要收集数千甚至数万张带标签的猫狗图片。然而,在现实世界中,我们经常面临数据稀缺的问题,特别是对于稀有类别或新兴领域。
图片来源:菜鸟教程
此时,零样本学习(Zero-Shot Learning, ZSL) 和 少样本学习(Few-Shot Learning, FSL)这两种技术应运而生,它们旨在解决数据稀缺条件下的机器学习问题,使模型能够像人类一样,通过少量甚至零样本就能识别新的类别或完成新的任务。这些方法在2023-2024年间得到了显著的发展和应用,尤其在大型语言模型和计算机视觉领域表现突出。
本文将深入探讨零样本学习和少样本学习的核心概念、工作原理、实现方法以及最新应用,帮助读者全面理解这两种前沿学习范式。
二、核心概念解析
1. 零样本学习(Zero-Shot Learning)
零样本学习是指模型能够识别训练过程中从未见过的类别。
例如,假设我们有一个模型已经学习了猫和狗的特征,但从未见过老虎的图像。通过零样本学习,模型可以利用老虎的语义描述(如"类似猫的大型条纹动物")来识别老虎,即使它从未在训练数据中出现过。
零样本学习的根本目的是解决类别从未出现在训练集中的情况,让模型具有推理能力,实现真正的智能。其中"零次"(Zero-shot)是指对于要分类的类别对象,一次也不进行学习。
2. 少样本学习(Few-Shot Learning)
少样本学习是指模型通过极少量的样本(通常为1-5个)来学习识别新类别的能力。在N-way K-shot问题设定中,N
表示类别数,K
表示每个类别的样本数。当K=1
时,称为一次学习(One-Shot Learning);当K
为2-5时,称为少样本学习(Few-Shot Learning)。
少样本学习一般通过元学习(Meta Learning)实现,也被称为"学会学习(Learning to Learn)"。在meta training阶段,将数据集分解为不同的meta task,学习在类别变化情况下的泛化能力;在meta testing阶段,面对全新的类别,不需要变动已有模型就可以完成分类。
3. 关键区别与联系
零样本学习与少样本学习有着本质区别,但它们都是为了解决数据稀缺问题而设计的。
- 零样本学习具有极高的灵活性,允许模型不需要额外训练就能处理广泛的任务,尤其适用于缺乏特定训练数据或需要快速实验的场景。
- 而少样本学习则在可获得有限训练样本的情况下提供了更好的性能,适合需要任务特定定制或训练数据受限的情况。
三、工作原理与实现方法
1. 零样本学习的工作原理
零样本学习的核心思想是建立已知类别(seen classes)和未知类别(unseen classes)之间的桥梁。而这座桥梁就是语义知识。通过学习视觉特征与语义属性之间的映射关系,模型能够推断出从未见过的类别。
零样本学习的实现方法主要包括:
-
语义嵌入方法:建立视觉特征空间和语义属性空间之间的映射关系。
-
属性预测方法:先训练一个预测模型,该模型可以将视觉数据映射到语义表示数据。之后,只要知道新对象的语义描述,就可以识别新的对象。
-
生成式方法:如AFC-GAN(Alleviating Feature Confusion for Generative Zero-shot Learning)等,通过生成式模型来解决特征混淆问题。
2. 少样本学习的工作原理
少样本学习通常采用元学习(Meta-Learning)框架,在训练过程中模拟少样本学习的场景。
在meta-training阶段,模型学习类别变化情况下的泛化能力;在meta-testing阶段,模型可以快速适应新的类别。训练数据通常被组织成多个"元任务"(meta-task),每个任务包含支持集(support set)和查询集(query set)。
少样本学习的主要实现方法包括:
-
度量学习方法:
-
原型网络(Prototypical Networks):将每个类别表示为一个原型(prototype),通常是该类所有样本的特征向量的平均值。在测试时,将输入样本的特征向量与各类别原型进行比较,计算相似度或距离。
-
匹配网络(Matching Networks):通过注意力机制,查看支持集中最相似的类别,并比较查询样本与支持集的相似度和差异性。训练和测试都基于n-shot, k-way任务,使模型能以端到端方式优化目标任务。
-
关系网络(Relation Networks):学习比较查询图像和支持集图像之间的关系得分。
-
-
基于梯度的元学习方法:
- 模型无关元学习(MAML, Model-Agnostic Meta-Learning):学习一个适合快速适应的初始化参数,在少量梯度更新后能够快速适应新任务。
-
基于记忆的方法:
- 记忆增强神经网络:利用外部记忆模块存储历史知识,辅助少样本学习。
3. Python实现示例
下面是一个使用 PyTorch 实现原型网络进行少样本学习的简化代码示例:
import torch
import torch.nn as nn
import torch.nn.functional as Fclass PrototypicalNetwork(nn.Module):def __init__(self, input_size, hidden_size):super(PrototypicalNetwork, self).__init__()# 简单的特征提取器self.encoder = nn.Sequential(nn.Linear(input_size, hidden_size),nn.ReLU(),nn.Linear(hidden_size, hidden_size),nn.ReLU())def forward(self, support_set, support_labels, query_set):# 支持集的类别数n_classes = len(torch.unique(support_labels))# 编码支持集和查询集support_features = self.encoder(support_set)query_features = self.encoder(query_set)# 计算每个类的原型(平均特征向量)prototypes = torch.zeros(n_classes, support_features.size(1))for i in range(n_classes):mask = support_labels == iprototypes[i] = support_features[mask].mean(0)# 计算查询样本与每个原型的欧氏距离dists = torch.cdist(query_features, prototypes)# 距离越小,相似度越高,转换为对数概率logits = -distsreturn logitsdef predict(self, support_set, support_labels, query_set):logits = self.forward(support_set, support_labels, query_set)_, preds = torch.max(logits, 1)return preds# 使用示例
def few_shot_demo():# 假设有一个2-way 3-shot任务input_size = 28*28 # 例如MNIST图像hidden_size = 64model = PrototypicalNetwork(input_size, hidden_size)# 支持集: 2个类别,每类3个样本support_set = torch.randn(6, input_size)support_labels = torch.tensor([0, 0, 0, 1, 1, 1])# 查询集: 需要分类的新样本query_set = torch.randn(2, input_size)# 预测predictions = model.predict(support_set, support_labels, query_set)print(f"预测类别: {predictions}")if __name__ == "__main__":few_shot_demo()
而对于零样本学习,可以使用预训练的视觉-语言模型如CLIP(Contrastive Language-Image Pre-training),通过文本描述来识别新类别:
import torch
import clip
from PIL import Imagedef zero_shot_demo(image_path, candidate_labels):# 加载CLIP模型device = "cuda" if torch.cuda.is_available() else "cpu"model, preprocess = clip.load("ViT-B/32", device=device)# 预处理图像image = preprocess(Image.open(image_path)).unsqueeze(0).to(device)# 构建文本提示text_prompts = [f"a photo of a {label}" for label in candidate_labels]text = clip.tokenize(text_prompts).to(device)# 计算图像和文本特征with torch.no_grad():image_features = model.encode_image(image)text_features = model.encode_text(text)# 归一化特征image_features /= image_features.norm(dim=-1, keepdim=True)text_features /= text_features.norm(dim=-1, keepdim=True)# 计算相似度similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1)# 获取最匹配的类别values, indices = similarity[0].topk(len(candidate_labels))# 打印结果for value, index in zip(values, indices):print(f"{candidate_labels[index]:>16s}: {100 * value.item():.2f}%")# 使用示例
if __name__ == "__main__":# 在零样本设置下识别动物image_path = "tiger.jpg" # 假设有一张老虎的图片candidate_labels = ["cat", "dog", "tiger", "elephant", "zebra"]zero_shot_demo(image_path, candidate_labels)
四、应用场景与挑战
1. 应用场景
零样本学习和少样本学习在多个领域都有广泛应用,尤其在数据收集困难或标注成本高昂的场景中显示出巨大价值。
-
计算机视觉领域:
- 图像分类:识别稀有或新物种,如在生物多样性研究中识别罕见植物或动物。
- 物体检测:在有限样本条件下检测新类别物体。
- 图像分割:实现对新类别的语义分割。
- 病理图像分析:识别罕见疾病的病理特征。
-
自然语言处理领域:
- 文本分类:对新话题或领域的文本进行分类。
- 命名实体识别:识别新类型的命名实体。
- 情感分析:分析针对新产品或话题的情感表达。
- 问答系统:回答关于新领域的问题。
-
多模态应用:
- 图像-文本跨模态任务:如CLIP模型通过学习图像和文本之间的对应关系,实现零样本图像识别。
- 视觉问答:回答关于图像中未见物体的问题。
-
特殊应用领域:
- 药物发现:预测新化合物的性质和功效。
- 稀有事件检测:如网络安全中的异常行为识别。
- 个性化推荐:在冷启动问题中推荐新物品。
2. 挑战与解决方向
尽管零样本学习和少样本学习在近年来取得了显著进展,但仍面临一些关键挑战:
-
领域偏移问题:模型在训练域和测试域之间存在分布差异,影响泛化性能。
- 解决方向:领域适应技术、不确定性建模。
-
特征表示学习:
- 解决方向:自监督学习、对比学习、预训练模型微调。
-
数据增强与生成:
- 解决方向:生成模型如GANs用于样本生成,解决样本稀缺问题。
-
元学习算法效率:
- 解决方向:优化元学习算法,提高模型收敛速度和稳定性。
-
可解释性:
- 解决方向:开发更透明的模型架构,提高模型决策的可解释性。
五、最新研究进展与趋势
近年来,零样本学习和少样本学习领域取得了显著进展,特别是与大型预训练模型结合后展现出更强大的能力。下面是一些值得关注的研究趋势:
-
大型语言模型的少样本能力:
- 大型语言模型(LLMs)本身就是强大的少样本学习器。在预训练阶段,这些模型隐式地从大量文本数据中学习了各种任务,增强了它们在少量示例条件下解决多样化任务的能力。
- 结合提示工程(Prompting)的方法在少样本学习中表现尤为出色。
-
跨模态学习:
- 如CLIP(Contrastive Language-Image Pre-training)等模型通过大规模预训练,建立了文本和图像之间的联系,使零样本图像分类成为可能。
-
自监督与对比学习:
- 无需大量标注数据,通过自监督方式学习有效的特征表示,提升零样本和少样本学习性能。
-
元学习方法改进:
- 改进的MAML、原型网络等元学习方法,降低计算成本并提高性能。
-
生成模型辅助:
- 生成模型用于数据增强和特征模拟,缓解样本稀缺问题。
-
多模态融合:
- 结合视觉、文本、音频等多种模态信息,提升零样本和少样本学习的泛化能力。
-
应用于边缘设备:
- 轻量级零样本和少样本学习模型,适用于计算资源有限的边缘设备。
六、实践建议与总结
1. 实践建议
对于希望在项目中应用零样本学习和少样本学习技术的开发者,以下是一些实用建议:
-
选择合适的方法:
- 根据数据可用性选择零样本或少样本学习。
- 如完全没有新类别样本,考虑零样本学习;如有少量样本,考虑少样本学习。
-
充分利用预训练模型:
- 使用开源预训练模型(如CLIP、BERT等)作为基础,可以大幅提升性能。
-
数据增强技术:
- 通过数据增强扩充有限样本,如旋转、缩放、添加噪声等。
-
模型选择与实现:
- 可以利用如下开源库:
Pytorch-Meta
、Learn2Learn
、Torchmeta
等,它们提供了元学习和少样本学习的实现框架。
- 可以利用如下开源库:
-
评估方法:
- 使用标准的N-way K-shot评估方法,确保结果可比较。
- 注意训练和测试类别的完全分离,避免信息泄露。
2. 总结
零样本学习和少样本学习代表了机器学习向人类学习方式迈进的重要一步。
人类能够从很少的例子中快速学习新概念,而这些技术正试图在人工智能系统中复制这种能力。随着研究的深入和技术的成熟,零样本学习和少样本学习将在数据稀缺场景中发挥越来越重要的作用,推动人工智能向更加通用和灵活的方向发展。
未来,随着更多创新算法的提出和大规模预训练模型的普及,我们有望看到零样本学习和少样本学习在更广泛的领域得到应用,解决更多实际问题,让人工智能真正具备"举一反三"的能力。
参考文献
- Palatucci, M., Pomerleau, D., Hinton, G. E., & Mitchell, T. M. (2009). Zero-shot learning with semantic output codes.
- Lampert, C. H., Nickisch, H., & Harmeling, S. (2014). Attribute-based classification for zero-shot visual object categorization.
- Snell, J., Swersky, K., & Zemel, R. (2017). Prototypical networks for few-shot learning.
- Finn, C., Abbeel, P., & Levine, S. (2017). Model-agnostic meta-learning for fast adaptation of deep networks.
- Radford, A., Kim, J. W., Hallacy, C., Ramesh, A., Goh, G., Agarwal, S., … & Sutskever, I. (2021). Learning transferable visual models from natural language supervision.
本文介绍了零样本学习和少样本学习的基本概念、工作原理、实现方法和应用场景,希望能对读者理解这两种前沿学习范式有所帮助。随着人工智能技术的不断发展,我们期待看到更多创新和突破,使机器真正具备人类般的学习能力。
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
相关文章:
AI知识补全(十四):零样本学习与少样本学习是什么?
名人说:一笑出门去,千里落花风。——辛弃疾《水调歌头我饮不须劝》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(十三):注意力…...
Pycharm(十一):字符串练习题
1.输入一个字符串,打印所有偶数位上的字符(下标是0,2,4,6...位上的字符) # 练习题1:输入一个字符串,打印所有偶数位上的字符(下标是0,2,4,6...位上的字符) # 1.键盘录入字符串&…...
设计原则之迪米特法则
一、定义 迪米特法则又称为最少知识原则(Law of Demeter,LoD),是一项用于面向对象设计的基本原则之一。该原则强调一个对象应该对其他对象有最少的了解,即一个类不应该知道太多关于其他类的内部细节。 二、好处 迪米…...
Debian系统_主板四个网口1个配置为WAN,3个配置为LAN
Debian系统_主板四个网口1个配置为WAN,3个配置为LAN 一、重新配置网口 1、查看当前网口的状态 ifconfig 或者 ip link show 或者 ls /sys/class/net 2、修改网络配置文件 sudo vi /etc/network/interfaces 注意WAN口的网关地址如果是192.168.3.1的话,L…...
Spring Boot 快速入手
前言:为什么选择 Spring Boot? 🚀 在现代 Java 开发中,Spring Boot 已成为最流行的后端框架之一。无论是小型 Web 应用、企业级系统,还是微服务架构,Spring Boot 都能提供快速开发、自动配置、轻量级部署的…...
Ubuntu Live USB 如何使用
以下是使用 Ubuntu Live USB 的详细指南,涵盖启动、试用系统、安装系统及常用工具操作: 1. 制作 Ubuntu Live USB • 所需工具: • Ubuntu ISO 镜像(从 官网 下载)。 • U盘(至少 4GB,数据将被…...
基于单片机的音乐播放器系统设计
基于单片机的音乐播放器系统设计是一个综合性较强的电子系统开发项目 系统概述 基于单片机的音乐播放器旨在利用单片机的控制功能,结合音频处理电路、存储单元等,实现音乐的播放、暂停、切换、音量调节等功能,可应用于小型便携式音频设备、电子玩具、智能家居背景音乐系统等…...
HttpClient-01.介绍
一.介绍 通过HttpClient,我们可以在Java程序中构造并发送Http请求。要使用HttpClient,就要导入依赖坐标。 核心API: HttpClient:Http客户端,使用它可以发送http请求。 HttpClients:构建器,使…...
2025年win10使用dockerdesktop安装k8s
一、写作背景 百度了一圈, 要么教程老,很多操作步骤冗余, 要么跑不通,或者提供的链接失效等情况。 二、看前须知 1、安装过程使用的AI辅助, 因为参考的部分博客卡柱了。 2、如果操作过程中遇到卡顿, …...
技术回顾day2
1.获取文件列表 流程:前端根据查询条件封装查询信息,后端接收后进行封装,封装为FileInfoQuery,根据fileInfoQuery使用mybatis的动态sql来进行查询。 2.文件分片上传 每次上传需要上传包括(文件名字,文件,md5值&#…...
软件工程-UML
例图,类图,状态图,顺序图,活动图 目录 例图 类图 状态图 顺序图 活动图 例图 例图由四个元素组成,参与者、用例、系统边界、参与者和用例之间的关系 参与者用一个小人表示,用例用椭圆表示ÿ…...
赛逸展2025“创新引擎”启动:限量席位,点亮科技绿色新征程
当今时代,科技革新与绿色发展已然成为推动社会进步的双引擎。2025第七届亚洲消费电子技术贸易展(赛逸展)敏锐捕捉这一趋势,重磅打造“科技创新专区”,并面向科技、绿色企业吹响限量招募号角。 这个独具特色的专区紧扣…...
前后台系统
前后台系统(Foreground/Background System)是一种常见的嵌入式系统编程模型,尤其是在那些不需要复杂操作系统的简单系统中。这种系统架构通常用于实时性要求不是极端苛刻的环境,但在响应外部事件时仍需要一定的及时性。下面我将详…...
VHT AMPDU
A - MPDU 由一个或多个 A - MPDU 子帧以及可变数量的 EOF填充子帧组成。 在 VHT中,存在如下填充: 一个 A - MPDU 子帧的填充子字段中有 0 - 3 个字节。 EOF 填充字段中有零个或多个 EOF 填充子帧。 EOF 填充子帧中EOF填充字节中有 0 - 3 个字节。 A - MPDU 帧结束前填充(A -…...
Spring框架如何做EhCache缓存?
在Spring框架中,缓存是一种常见的优化手段,用于减少对数据库或其他资源的访问次数,从而提高应用性能。Spring提供了强大的缓存抽象,支持多种缓存实现(如EhCache、Redis、Caffeine等),并可以通过…...
助力 Windows 文件管理:重命名与清理重复文件软件精选
软件介绍 在日常的电脑使用中,高效管理文件至关重要。接下来为大家介绍几款实用软件,能助您轻松搞定文件管理难题。 AdvancedRenamer:全能批量重命名利器 专为 Windows 系统打造的 AdvancedRenamer,功能堪称强大。无论是文本替…...
重建二叉树(C++)
目录 1 问题描述 1.1 示例1 1.2 示例2 1.3 示例3 2 解题思路 3 代码实现 4 代码解析 4.1 初始化 4.2 递归部分 4.3 主逻辑 5 总结 1 问题描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序…...
Go+Gin实现安全多文件上传:带MD5校验的完整解决方案
后端 package mainimport ("encoding/json""fmt""log""net/http""os""path/filepath""github.com/gin-contrib/cors""github.com/gin-gonic/gin" )// 前端传来的文件元数据 type FileMetaRe…...
SwanLab Slack通知插件:让AI训练状态同步更及时
在AI模型训练的过程中,开发者常常面临一个难题:如何及时跟踪训练状态?无论是实验超参数的调整、关键指标的变化,还是意外中断的告警,传统的监控方式往往依赖手动刷新日志或反复检查终端,这不仅效率低下&…...
JavaScript元素尺寸与位置
目录 client 家族与 offset 家族 一、client 家族:内容区域 内边距 示例代码 应用场景 二、offset 家族:内容区域 内边距 边框 滚动条 示例代码 应用场景 三、综合应用场景 1. 动态调整元素高度 2. 拖拽元素 3. 判断元素是否在视口内 四…...
IS-IS:单区域集成配置与多区域集成配置
一、IS-IS概述 IS-IS(Intermediate System to Intermediate System) 是一种链路状态内部网关协议(IGP),设计用于自治系统(AS)内部的路由选择。最初由ISO为OSI模型的无连接网络服务(…...
Cesium学习(未完继续)
添加底图 viewer.imageryLayers.addImageryProvider(imageryProvider)常见 ImageryProvider 实现类 ArcGisMapServerImageryProvider:用于从 ArcGIS Server 获取影像数据。 BingMapsImageryProvider:用于从 Bing Maps 获取影像数据。 OpenStreetMapIm…...
【学Rust写CAD】22 双圆径向渐变的结构体(two_circle_radial_gradient.rs)
源码 //two_circle_radial_gradient.rs //! 定义双圆径向渐变的结构体和相关功能/// 表示一个双圆径向渐变的源 /// /// 该结构体描述了两个圆之间的渐变,支持矩阵变换和颜色查找表优化 #[derive(Debug, Clone, PartialEq)] pub struct TwoCircleRadialGradientSou…...
基于SpringAOP面向切面编程的一些实践(日志记录、权限控制、统一异常处理)
前言 Spring框架中的AOP(面向切面编程) 通过上面的文章我们了解到了AOP面向切面编程的思想,接下来通过一些实践,去更加深入的了解我们所学到的知识。 简单回顾一下AOP的常见应用场景 日志记录:记录方法入参、返回值、执…...
acwing 5438. 密接牛追踪2
农夫约翰有 NN 头奶牛排成一排,从左到右依次编号为 1∼N。 不幸的是,有一种传染病正在蔓延。 最开始时,只有一部分奶牛受到感染。 每经过一个晚上,受感染的牛就会将病毒传染给它左右两侧的牛(如果有的话)…...
【Linux】线程池
目录 线程池 日志 线程池 在程序中,会预先创建一批线程,在内部会有一个叫任务队列task_queue的东西,未来如果有任务要处理,就把任务push到任务队列里,然后自动有线程去任务队列里拿任务并处理,如果没有任…...
【11408】考研英语长难句解析策略:三步断开与简化法,快速提升阅读得分
2025.04.01 英语断开长难句分析主谓心得 简化长难句心得 英语 断开长难句 在一些长难句中,有时从句的连词会被省略,且没有标点将其隔开,此时就无法通过标点和连接词来断开长难句。那么我们只能够通过分析主谓来断开长难句。 分析主谓 谓语…...
Spring Cloud 2023.x安全升级:OAuth2.1与JWT动态轮换实战
引言:当安全遇上云原生,零停机密钥轮换成为刚需 在微服务架构中,OAuth2.1与JWT已成为身份验证的黄金标准,但传统方案存在两大痛点: 密钥轮换风险:手动替换JWT密钥需重启服务,导致短暂鉴权中断&…...
Vue3.5 企业级管理系统实战(十二):组件尺寸及多语言实现
1 组件尺寸切换 1.1 用 Pinia 进行 Size 的持久化存储 首先,在 src/plugins/element.ts 中增加 size 类型,代码如下: //src/plugins/element.ts import type { App } from "vue";import { ElMessage, ElNotification, ElMessageBo…...
15:00开始面试,15:08就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
Java学习路线 - 第三阶段笔记
Java学习路线 - 第三阶段笔记 Java高级特性(2-3个月) 1. 集合框架深入 1.1 List详解 ArrayList:基于动态数组实现,随机访问高效,插入删除效率低LinkedList:基于双向链表实现,插入删除高效&a…...
【无标题】Scala函数基础
函数和方法的区别 1) 核心概念 (1) 为完成某一功能的程序语句的集合,称为函数。 (2) 类中的函数称之方法。 2) 案例实操 (1) Scala 语言可以在任何的语法结构中声明…...
微信登录、商品浏览前瞻
一.业务效果 二.所需技术...
自动化工作流工具的综合对比与推荐
最近收到很多朋友私信我说:“刷短视频的时候,总是刷到自动化工作流的工具,有好多直播间都在宣传,不知道哪款工具好”。我花了点时间,做了一下测试,大家可以参考一下,以下内容: 以下…...
可实现黑屏与蓝屏反应的屏幕隐私保护软件分享
软件介绍 在信息安全备受关注的当下,一款能够有效保护屏幕隐私的软件 —— 防窥助手,悄然问世。它由吾爱的 遗憾迟香精心开发,为用户的屏幕隐私防护带来全新体验。 独特原理,精准守护 防窥助手的运行原理相当巧妙,它…...
PERL开发环境搭建>>Windows,Linux,Mac OS
特点 简单 快速 perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快 灵活 借鉴了C/C, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能 开源.免费 没有&qu…...
【实战】渗透测试下的传输命令
目录 bitsadmin certutil curl ftp js nc perl php py scp vbs wget WindowsDefender bitsadmin 不支持https、ftp协议,php python带的服务器会出错 >bitsadmin /transfer n http://192.168.1.192/Client.exe e:\1.exe >bitsadmin /rawreturn /…...
JSON 基础知识(一)
第一部分:JSON 基础知识 📢 快速掌握 JSON!文章 视频双管齐下 🚀 如果你觉得阅读文章太慢,或者更喜欢 边看边学 的方式,不妨直接观看我录制的 JSON 课程视频!🎬 视频里会用更直观…...
nodejs:midi-writer-js 将基金净值数据转换为 midi 文件
开放式基金是没有公布每日交易量的。 /funds/data/660008.csv 文件开头: date,jz,ljjz 2016-01-04,1.1141,1.1141 2016-01-05,1.1161,1.1161 2016-01-06,1.1350,1.1350 这是一个将开放式基金数据转换为 MIDI音乐的 js 程序示例。该程序将基金净值映射为 MIDI音符的…...
从零实现Json-Rpc框架】- 项目实现 - 服务端registrydiscovery实现
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
自适应二值化与形态学变换在图像颜色识别与替换中的应用解析
目录 前言一、自适应二值化1.1 取均值 ADAPTIVE_THRESH_MEAN_C1.2 高斯加权求和 ADAPTIVE_THRESH_GAUSSIAN_C1.2.1 一维高斯分布1.2.2 二维高速分布1.2.3 二维高斯分布权重计算规则 1.2.3.1 用户设置了σ1.2.3.2 用户没有设置σ1.3 代码二、形态学变换2.1 核 2.2 腐蚀2.3 膨胀…...
JsonCpp 处理 JSON(现代 C++ 方案)(三)
第三部分:JsonCpp 处理 JSON(现代 C++ 方案) 📢 快速掌握 JSON!文章 + 视频双管齐下 🚀 如果你觉得阅读文章太慢,或者更喜欢 边看边学 的方式,不妨直接观看我录制的 JsonCpp 课程视频!🎬 视频里会用更直观的方式讲解 JsonCpp 的核心概念、实战技巧,并配有动手演…...
flutter 曲线学习 使用第三方插件实现左右滑动
flutter 曲线的使用 实现左右滑动 TemperatureChartPage() TemperatureChartPage2() – 不太完善 方法 ChartDrawPage import package:doluyo/dly_package/widget/dly_widget.dart; import package:fl_chart/fl_chart.dart; import package:flutter/material.dart; impor…...
【WRF工具】GIS4WRF详细介绍:配置 WPS/WRF
【WRF工具】GIS4WRF详细介绍 QGIS-GIS4WRF安装(Installation)安装 QGIS安装 GIS4WRF GIS4WRF 配置(Configuration)一、如何进入配置界面二、可配置内容1️⃣ 设置工作目录2️⃣ 与 WPS/WRF 集成3️⃣ 与 NCAR 数据档案集成 参考 GIS4WRF 是一个在 QGIS 中…...
【自用记录】本地关联GitHub以及遇到的问题
最近终于又想起GitHub,想上传代码和项目到仓库里。 由于很早之前有在本地连接过GitHub(但没怎么用),现在需要重新搞起(操作忘得差不多)。 在看教程实操的过程中遇到了一些小问题,遂记录一下。 前…...
小程序中跨页面组件共享数据的实现方法与对比
小程序中跨页面/组件共享数据的实现方法与对比 在小程序开发中,实现不同页面或组件之间的数据共享是常见需求。以下是几种主要实现方式的详细总结与对比分析: 一、常用数据共享方法 全局变量(getApp())、本地缓存(w…...
ngx_http_core_merge_srv_conf
定义在 src\http\ngx_http_core_module.c static char * ngx_http_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) {ngx_http_core_srv_conf_t *prev parent;ngx_http_core_srv_conf_t *conf child;ngx_str_t name;ngx_http_server_name_t…...
如何在中科方德llinux系统上离线安装salt-minion
1,我的系统是什么 国产操作系统 中科方德 NFSChina Server release 4.0.240701 (RTM4-G320) 2,首先准备好两个安装包 salt-minion-2015.8.8-2.el7.noarch.rpm和salt-2015.8.8-2.el7.noarch.rpm 后者这个是前者的依赖项。 所以先安装salt-2015.8.8-2.e…...
RAG系统实战:当检索为空时,如何实现生成模块的优雅降级(Fallback)?
目录 RAG系统实战:当检索为空时,如何实现生成模块的优雅降级(Fallback)? 一、为什么需要优雅降级(Fallback)? 二、常用的优雅降级策略 策略一:预设后备提示࿰…...
输电线路航空标志球:低空飞行的安全路标 / 恒峰智慧科技
在现代社会,随着航空业的快速发展,低空飞行活动日益频繁。为了确保飞行安全,避免飞机与高压电线等障碍物发生碰撞,输电线路航空标志球应运而生。这种装置被广泛应用于高压输电线路上,尤其是超高压和跨江输电线…...