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

使用CLIP模型进行零样本图像分类的分步指南

零样本学习允许AI系统对未明确训练过的类别进行图像分类,标志着计算机视觉和机器学习的重大进步。本文将介绍使用CLIP实现零样本图像分类的详细分步指南,从环境设置到最终的图像处理和分类。我们首先介绍零样本学习的概念及其在现代AI应用中的重要性。然后深入探讨CLIP模型的概述,解释其架构以及其强大的跨模态学习能力背后的原理。最后用一个实际的实现样例来介绍,设置工作环境、加载CLIP模型和处理器以及准备图像进行分类的基本步骤。

1、零样本图像分类简介

零样本图像分类是一涉及使用未经明确训练的特定类别的模型将图像分类到不同的类别中的任务。模型的任务是预测图像所属的类别。

当只有少量标记数据,或者想要快速将图像分类整合到应用程序中时,这很有用。我们可以使用预先存在的预训练模型,而不是训练自定义模型。这些模型通常是多模态的,并且已经在大量的图像和描述数据集上进行了训练,它们可以用于许多不同的任务。

我们只需要给模型一些关于它没有见过的类别的额外信息(这被称为辅助信息,可以是描述或属性),模型就能够预测未见到的分类,零样本分类是迁移学习的一个子领域。

零样本图像分类任务包括在推理时根据自己的标签对图像进行分类。例如,可以传递一个标签列表,如飞机、汽车、狗、鸟,以及您想要分类的图像。模型将选择最可能的标签。

对比语言-图像预训练(CLIP)是零样本分类最流行的模型之一。它可以根据图像的常见对象或特征对图像进行分类,不需要为每个新用例进行微调。

2、CLIP模型概述

CLIP是一个从自然语言监督中学习视觉概念的神经网络。它在图像和文本对上进行训练,学会预测与给定图像相对应的文本。然后它可以用于新图像的零样本分类。

CLIP具有灵活性,可以应用于各种视觉分类基准。它不需要针对基准的性能进行优化,并且在表示学习评估中使用线性探针时,已经显示出最先进的性能和分布鲁棒性。它在表示学习评估中使用线性探针时优于现有模型,如ImageNet。

该网络由一个图像编码器和一个文本编码器组成,它们被联合训练以预测正确的配对。在训练过程中,图像和文本编码器被训练以最大化真实配对的图像和文本嵌入的余弦相似度,同时最小化不正确配对的余弦相似度。

CyCLIP是一个建立在CLIP基础上的框架,它形式化了一致性。它优化学习到的表示,使其在图像和文本空间中在几何上保持一致,并且已经被证明可以提高CLIP的性能。

3、设置环境

我们从设置工作环境开始。首先下载本文中将使用的包。

 !pip install transformers  !pip install torch

4、加载模型和处理器

我们需要两个主要组件来构建零样本图像分类:模型处理器。让我们首先从Transformers加载CLIP模型。要加载模型,我们将使用

from_pretrained

方法,并传递此特定任务的正确检查点。

 model = CLIPModel.from_pretrained(  "./models/openai/clip-vit-large-patch14")  

然后使用Hugging Face的Transformers库为clip模型加载一个预训练的处理器

 from transformers import AutoProcessor  processor = AutoProcessor.from_pretrained(  "./models/openai/clip-vit-large-patch14")

5、加载和显示图像

为了加载图像,我们将使用PIL库并导入Image类。使用

Image.open

加载图像,并指定图像的路径。

 from PIL import Image  image = Image.open("./occupiers.png")  image

6、定义标签和输入

创建标签。我们可以使用"占领者的照片"作为第一个标签,"猫的照片"作为第二个标签。

 labels = ["a photo of a occupiers", "a photo of a cats"]

然后创建模型的输入。这里将使用处理器。我们需要传递文本(即标签)和图像。

 inputs = processor(text=labels,  images=image,  return_tensors="pt",  padding=True)

7、处理和分类图像

我们将上面的预处理内容输入模型

 outputs = model(**inputs)  

结果如下:

 CLIPOutput(loss=None, logits_per_image=tensor([[21.8763, 9.7856]], grad_fn=<TBackward0>), logits_per_text=tensor([[21.8763],[ 9.7856]], grad_fn=<MulBackward0>), text_embeds=tensor([[-2.9747e-03, 2.6380e-03, 3.2704e-04, …, -1.7559e-02,-7.0350e-05, 3.6619e-03],[-1.9645e-02, 2.0558e-02, 2.9485e-02, …, 3.1643e-02,1.4714e-02, 6.7246e-03]], grad_fn=<DivBackward0>), image_embeds=tensor([[ 5.7789e-03, -4.3962e-02, -3.9901e-03, 5.6101e-02, 6.3676e-03,2.9096e-02, 2.6953e-02, 4.0592e-02, -8.4450e-06, 5.8055e-03,-1.4274e-02, -3.1642e-02, 2.4113e-02, -2.4111e-02, -1.1296e-02,9.6764e-03, 1.0219e-02, 8.4689e-03, 3.4425e-02, 1.2221e-02,2.7957e-02, 3.0495e-02, 1.3093e-02, 1.7346e-02, 5.5131e-03,-2.7130e-02, -5.8669e-02, -2.7784e-02, -4.0745e-02, -3.3350e-02,-2.0706e-02, 2.8432e-02, 5.9084e-03, 5.6609e-03, -9.2576e-03,1.0789e-02, 2.0793e-02, -4.7598e-03, 2.2963e-02, -3.3255e-02,-1.6315e-02, -2.4104e-02, 1.5616e-02, 3.3750e-02, -2.6935e-02,8.7083e-03, 2.1546e-03, -3.3888e-02, 4.7085e-02, -3.9901e-03,-1.2575e-02, -5.2894e-02, 3.6603e-02, -7.6685e-03, 2.7837e-02,3.0959e-02, 2.0127e-02, -2.4038e-02, -2.8744e-02, -1.4038e-02,1.5173e-02, 1.8799e-02, -2.9608e-03, -2.2345e-02, 4.7702e-02,-1.4433e-02, 1.4635e-02, 3.1230e-02, 5.9901e-02, -1.3265e-03,7.6162e-03, 1.2988e-02, 5.5220e-03, 1.4117e-02, -1.4327e-02,2.1601e-03, -1.1008e-02, -3.7867e-02, 1.6744e-02, 1.1719e-02,1.8613e-02, 3.0909e-02, 3.1654e-02, 2.1501e-02, 7.9533e-03,1.0662e-02, -1.1237e-02, -4.3277e-02, 2.6244e-02, 1.2052e-02,4.5038e-02, -2.9739e-02, -1.0173e-02, -6.4970e-03, -4.3230e-03,5.1218e-03, -3.4656e-02, -6.2149e-02, 8.0739e-03, 4.5069e-02,-1.3734e-02, -1.9803e-02, 1.0912e-03, -5.1993e-02, -2.2205e-02,1.8498e-02, -2.1908e-02, -4.6194e-03, 3.1051e-04, -3.7240e-03,1.7533e-02, 1.6989e-02, -4.8901e-02, 1.3751e-02, 6.9713e-03,2.8202e-02, 2.1325e-02, -3.6354e-02, -7.1071e-02, -2.9884e-02,-2.0108e-03, -3.9210e-02, 1.8043e-02, 2.5318e-02, 2.7652e-02,-1.6892e-02, -2.4670e-02, -5.6512e-03, -1.4796e-02, 9.8687e-03,-1.7640e-02, 8.6374e-02, 7.8690e-03, 7.9550e-04, -4.2292e-02,9.5068e-02, 5.3002e-03, 7.0152e-03, -1.5667e-02, -2.9754e-02,1.6179e-02, 4.1414e-02, -3.3988e-02, -6.1861e-02, -4.3325e-03,2.5685e-04, 4.3989e-03, -5.8877e-03, 1.1796e-02, 1.5167e-02,-5.2949e-02, 2.1775e-02, 2.7675e-02, 2.2198e-02, 1.7648e-02,-3.4697e-02, 7.0108e-03, 5.2061e-02, -1.1802e-02, 1.5102e-02,-1.4692e-02, -5.4631e-03, -2.1430e-02, -9.3270e-04, 2.9920e-02,-2.4192e-02, -2.3823e-02, 9.7590e-03, 7.7101e-03, 1.7580e-03,3.9310e-03, -9.8752e-03, -8.6602e-03, 4.7450e-02, 2.0988e-02,3.0213e-02, -1.6734e-02, -1.8952e-01, -6.4087e-02, 3.9655e-02,4.8678e-02, 1.7897e-03, 6.5058e-03, 3.5143e-02, -3.7138e-02,8.1137e-03, -3.1982e-02, -7.0958e-03, 6.4963e-03, 1.4733e-02,4.0858e-03, -1.5045e-02, 5.5016e-03, -1.3627e-02, -3.6162e-03,-1.3287e-02, -6.2757e-02, -1.3430e-03, -2.7292e-05, 6.0769e-04,1.2674e-02, 8.1904e-03, 8.9082e-03, 1.9957e-02, 3.8102e-03,3.6519e-03, -4.4056e-02, -1.5661e-02, -9.5863e-03, -2.4219e-03,8.5753e-03, 1.6604e-02, -2.0069e-02, -4.6871e-02, 2.4206e-02,-4.8668e-03, 1.1664e-02, -6.8940e-03, -1.3681e-02, 1.6395e-02,9.4232e-03, -3.0263e-02, 3.2366e-03, 4.0138e-02, -6.1738e-03,-3.2676e-02, -1.8601e-02, 1.7904e-02, -1.3817e-02, -1.8048e-02,5.5864e-03, 1.0975e-02, -1.4123e-02, -3.0170e-02, 3.3311e-02,4.9997e-03, -1.0391e-02, 3.1777e-03, 1.9882e-02, 6.2273e-03,-3.2720e-02, -4.0859e-02, 1.5610e-02, -1.6431e-02, -3.8654e-03,8.7215e-02, -3.3904e-02, 6.1722e-03, -3.5134e-02, -1.6150e-02,1.4944e-02, -2.3586e-02, -1.0361e-02, 3.7658e-03, -3.6290e-02,-8.9540e-03, -1.3771e-02, -6.8122e-03, 3.0026e-03, -4.5137e-02,6.4355e-03, -3.3159e-03, -1.5333e-02, 3.4441e-02, -1.5725e-02,1.1518e-02, -5.9313e-03, 4.2979e-02, 2.8261e-02, 4.7787e-03,3.1031e-02, 1.7139e-03, 1.6778e-02, 2.6897e-04, -2.6202e-02,5.4559e-02, 7.4263e-04, -4.5143e-03, 1.2781e-03, 1.4802e-02,-3.7519e-03, 3.3716e-02, -2.1538e-02, -1.0190e-02, -5.5602e-02,-2.2949e-02, -1.6017e-02, -2.0295e-02, -6.1467e-03, -4.1679e-02,-3.3808e-02, -1.5946e-02, 1.2528e-02, -1.7425e-03, 1.0002e-02,1.3999e-03, -2.1473e-02, 2.9041e-02, 8.1162e-03, -3.6859e-03,-2.8920e-02, -1.9641e-02, 4.9203e-02, 1.1021e-02, -1.3119e-02,1.9755e-02, -3.8844e-02, -1.1669e-02, 3.3912e-02, 1.3763e-02,-3.5422e-02, 2.3399e-03, -4.5410e-02, -5.0237e-02, -1.2711e-02,6.7663e-03, -3.8081e-02, -4.7378e-02, 9.1057e-03, 9.7086e-03,1.8040e-02, -1.2091e-02, 1.0468e-02, -1.0993e-02, 8.1390e-04,-1.5350e-02, -5.2436e-02, -2.2084e-02, 5.2573e-03, -4.9846e-02,3.6649e-03, -1.9814e-03, -3.5178e-02, 3.8680e-04, 1.6706e-03,1.8115e-02, 1.4849e-03, 8.6505e-03, -2.5120e-02, 3.9394e-02,-9.8747e-03, 2.3633e-02, -3.0123e-02, -9.2278e-03, 2.5567e-02,-7.3859e-03, -1.4000e-02, 2.2307e-02, -2.9660e-02, 2.5312e-03,1.6757e-02, -1.2032e-02, -6.9583e-03, -2.8649e-02, 9.3962e-03,-6.9555e-02, -2.1766e-02, -1.2629e-02, -3.7239e-02, -3.6394e-02,-1.8847e-02, 3.1566e-02, -4.9777e-02, -4.2465e-03, -2.7758e-02,3.7707e-04, 8.1679e-02, -1.7641e-02, -9.5395e-03, -7.5895e-04,-3.7009e-02, 1.7522e-03, -8.6521e-03, -3.1135e-02, 1.1772e-02,2.9063e-02, 3.0317e-03, 2.3242e-02, 4.1135e-03, 2.4706e-03,1.9642e-02, 4.5938e-03, -2.0781e-02, -2.3492e-02, -2.0666e-02,5.8963e-02, 4.1321e-02, 1.2015e-02, -1.2244e-02, -3.4152e-02,

得到了一个非常大的输出,但我们感兴趣的是每个图像的logits。为了获得概率,需要将这些logits传入softmax层。通过对每个logit的输出调用softmax来获得概率。

 outputs.logits_per_image

tensor([[21.8763, 9.7856]], grad_fn=)

这样就获取logits的softmax,并取第一个元素,现在我们有了看起来像概率的东西。第一个元素是图像确实是占领者照片的概率,第二个是照片是猫照片的概率。

 probs = outputs.logits_per_image.softmax(dim=1)[0]  probs

tensor([9.9999e-01, 5.6118e-06], grad_fn=)

最后,我们可以看到,对于标签"占领者的照片",概率几乎是100%,而对于第二个标签,概率接近于零

 probs = list(probs)  for i in range(len(labels)):  print(f"label: {labels[i]} - probability of {probs[i].item():.4f}")

label: a photo of occupiers — probability of 1.0000 label: a photo of a cats — probability of 0.0000

总结

本文详细介绍了如何使用CLIP模型实现零样本图像分类。零样本学习是计算机视觉领域的一项重大进展,它使AI系统能够对未经明确训练的类别进行分类。我们首先解释零样本学习和CLIP模型的基本概念,然后提供实际实现的详细步骤指南。

主要内容包括:环境设置、CLIP模型和处理器的加载、图像准备、自定义标签定义、模型输入构建,以及分类结果的处理和解释。我们重点强调了CLIP模型的灵活性和强大的跨模态学习能力,这使其能在各种视觉分类任务中表现卓越。

最后我们通过一个具体示例,演示如何使用CLIP模型对图像进行分类,并详细解释如何解读模型输出的概率。无论您是零样本学习的新手,还是寻找在实际项目中实现CLIP的参考,本文都能为你提供有价值的信息和指导。

https://avoid.overfit.cn/post/b88b5ce03e304aee87997c31ac80dc92

作者:Youssef Hosni

相关文章:

使用CLIP模型进行零样本图像分类的分步指南

零样本学习允许AI系统对未明确训练过的类别进行图像分类,标志着计算机视觉和机器学习的重大进步。本文将介绍使用CLIP实现零样本图像分类的详细分步指南,从环境设置到最终的图像处理和分类。我们首先介绍零样本学习的概念及其在现代AI应用中的重要性。然后深入探讨CLIP模型的概…...

Llama 3.1用了1.6万个英伟达H100 GPU,耗费......

目录 Llama 3.1发布简介 Llama 3.1模型规模与训练 大模型企业发展面临的问题与困境 算力和能耗算力方面 数据和资金方面 技术和人才方面 Llama 3.1发布简介 当地时间 2024年 7月 23号&#xff0c;Meta 公司发布了迄今为止最强大的开源 AI 模型 Llama 3.1。该模型不仅规模…...

学习c语言第24天(练习)

编程题 第一题 最大公约数最小公倍数求和 //求最大公约数和最小公倍数之和 //暴力求解 //int main() //{ // int n 0; // int m 0; // while (scanf("%d %d", &n, &m)2) // { // int min n < m ? n : m; // int max n > m ? n : m; //…...

【微信小程序开发】——奶茶点餐小程序的制作(一)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

鱼眼相机去畸变和矫正

基于smart3D计算完空三进行导出opt文件 xx.opt文件,类似于xml文件 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <OpticalProperties version="1.0"><Id>0</Id><Name>201空三任务_1_…...

Llama 3.1论文中文对照翻译

The Llama 3 Herd of Models 模型群 Llama 3 Llama Team, Al Meta 1 {}^{1} 1 Llama 团队&#xff0c;Meta Al 1 {}^{1} 1 1 {}^{1} 1 A detailed contributor list can be found in the appendix of this paper. 1 {}^{1} 1 详细的贡献者名单可在本文附录中找到。 Mod…...

Vue js-cookie的使用存储token操作

在Vue项目中使用js-cookie库存储token可以按照下面的步骤进行操作&#xff1a; 首先&#xff0c;安装js-cookie库&#xff0c;可以使用npm安装&#xff0c;命令为&#xff1a; npm install js-cookie 然后&#xff0c;在需要存储token的组件中引入js-cookie库&#xff1a; imp…...

C到C++——C++基础

C是一种通用的、静态类型的、跨平台的编程语言。它是在1979年由Bjarne Stroustrup创建的&#xff0c;最初是作为C语言的扩展来支持面向对象编程。 C在保留C语言的特性的同时&#xff0c;添加了许多其他的功能&#xff0c;包括类、对象、继承、多态、模板等。这使得C成为了一种…...

trie算法

1、定义 高效的存储和查找字符串集合的数据结构 它的优点是&#xff1a;利用字符串的公共前缀来减少查询时间&#xff0c;最大限度地减少无谓的字符串比较&#xff0c;查询效率比哈希树高 2、构建 我们可以使用数组来模拟实现Trie树。 我们设计一个二维数组 son[N] [26] 来…...

Kubernetes之pod的基本概念

目录 什么是pod 启动一个pod 说明 Pod 和控制器 Pod 模板 Pod 更新与替换 资源共享和通信 Pod 中的存储 Pod 联网 Pod 安全设置 什么是pod Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod&#xff08;就像豌豆荚中&#xff09;是一组&#…...

PostgreSQL的学习心得和知识总结(一百五十)|[performance]更好地处理冗余 IS [NOT] NULL 限定符

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…...

sqllabs游戏

文章目录 总体思路&#xff1a;less-1:less-2:less-3:less-4:less-5:less-6:less-7:less-8:布尔盲注less-9:时间盲注less-21:less-24: 总体思路&#xff1a; 1、第一件事情 逃脱出单引号的控制 闭合单引号 2、单双引号需要成对出现 在python php Java中 3、2个办法 继续把多出…...

React Native Firebase:移动应用后端集成

React Native Firebase 是一个强大的库&#xff0c;它允许你在 React Native 应用中集成 Firebase 后端服务。Firebase 提供了一系列的服务&#xff0c;包括实时数据库、身份验证、云存储、云消息推送等&#xff0c;这些服务可以帮助你构建功能丰富、可扩展的移动应用。 安装和…...

趣味算法------开灯问题

题目描述 有 n 盏灯&#xff0c;编号为 1~n&#xff0c;第 1 个人把所有灯打开&#xff0c;第 2 个人按下所有编号为 2 的倍数的开关&#xff08;这些灯将被关掉&#xff09;&#xff0c;第 3 个人按下所有编号为 3 的倍数的开关&#xff08;其中关掉的灯将被打开&#xff0c;…...

如何长生?重要的是对内求索!

文章目录 1. 世界上没有仙丹2. 长生只能对内求索 1. 世界上没有仙丹 小说中的九转大还丹&#xff0c;修仙中的仙丹&#xff0c;蟠桃是不存在的。这是理所当然的废话。但是世界上总有很多广告词&#xff0c;用老山参、野生、纯天然&#xff0c;补肾、补肝等词来形容自己的产品&…...

SD-WAN解决方案

联通国际公司企业SD-WAN解决方案 产品介绍 随着数字化转型的加速推进&#xff0c;企业对网络连接的需求也在不断提高。联通国际公司推出的SD-WAN&#xff08;Software-Defined Wide Area Network&#xff0c;软件定义广域网&#xff09;解决方案&#xff0c;旨在为企业提供更…...

什么是C++的引用,请举例说明

C中的引用&#xff08;Reference&#xff09;是C语言的一个特性&#xff0c;它允许一个变量&#xff08;称为引用变量&#xff09;成为另一个变量&#xff08;被引用的变量&#xff09;的别名。这意味着&#xff0c;对引用变量的任何操作都会直接反映在被引用的变量上&#xff…...

大数据_SQL_5min访问达到100次的用户

某公司网站每日访问量达到10亿级别的访问量&#xff0c; 每次访问记录一条数据&#xff0c;数据包含如下字段&#xff1a;用户ID&#xff0c;访问时间&#xff08;毫秒级&#xff09;&#xff0c;访问页面。 要求使用hive求出所有在5分钟内访问次数达到100次的用户&#xff08;…...

Python PDF文本处理技巧 - 查找和高亮文字

目录 使用工具 Python在PDF中查找和高亮文字并统计出现次数和页码 Python在PDF的特定页面区域中查找和高亮文字 Python使用正则表达式在PDF中查找和高亮文字 Python在PDF中查找文字并获取它的坐标位置 其他查找条件设置 在日常工作和学习中&#xff0c;我们常常需要处理各…...

虚幻引擎 C++ 实现平面阴影

1、平面阴影介绍 平面阴影是一种相对简单的渲染阴影的方式&#xff0c;可以理解为对一个模型渲染两次&#xff0c;一次是渲染模型本身&#xff0c;另一次是渲染模型的投影。渲染投影可以看作是将模型的顶点变换到地面的投影空间再渲染&#xff0c;可以理解为渲染了一个“压扁”…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...