自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(217)
  • 收藏
  • 关注

原创 TCP通信流程

你的描述准确地概述了 TCP 客户端的基本通信流程。这里我会扩展你的说明,提供一个详细的解释,并给出如何在 C 语言中实现一个简单的 TCP 客户端的示例代码。通过这些特性的对比,可以根据具体的网络应用需求选择适合的传输协议。

2024-05-23 10:58:12 220

原创 socket地址理解

套接字的基本概念套接字(socket)是计算机网络中用于通信的端点,它抽象了不同主机上应用进程之间双向通信的机制。套接字连接应用进程与网络协议栈,使得应用程序能够利用网络协议进行通信。它作为应用程序与网络协议栈的接口,通过操作系统提供的 API 进行数据交换。套接字的工作机制在网络通信中,套接字充当两个应用程序之间的通信连接点。一个应用程序可以将数据写入其所在主机的套接字,数据通过网络接口卡(NIC)和传输介质发送到目标主机的套接字,从而实现数据传输。

2024-05-22 10:47:50 635

原创 网络通信过程

上层协议是如何使用下层协议提供的服务的呢?其实这是通过封装(encapsulation)实现的。应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),以实现该层的功能,这个过程就称为封装。当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序。分用是依靠头部信息中的类型字段实现的。arp协议会将ip地址对应的物理地址缓存在本机。

2024-05-20 06:45:51 103

原创 网络结构模式

IP地址(Internet Protocol Address),即互联网协议地址,是一个分配给网络中设备的数字标签。这种地址系统是IP协议的核心部分,允许不同网络设备通过因特网进行通信。IP地址不仅标识主机或其他网络设备,还帮助定位这些设备的地理位置。子网掩码(subnet mask),也叫网络掩码、地址掩码或子网络遮罩,是一种用于指明一个 IP 地址哪些位表示子网标识,哪些位表示主机标识的技术。子网掩码不能单独存在,必须结合 IP 地址一起使用。

2024-05-18 08:07:30 946

原创 Assistants API能力

界面不可定制,不能集成进自己的产品只有 ChatGPT Plus/Team/Enterprise 用户才能访问未来开发者可以根据使用量获得报酬,北美先开始承诺会推出 Team/Enterprise 版的组织内部专属 GPTs定制界面,或和自己的产品集成需要传大量文件服务国外用户,或国内 B 端客户数据保密性要求不高不差钱需要极致调优追求性价比服务国外用户,或国内 B 端客户数据保密性要求不高服务国内用户数据保密性要求高压缩长期成本需要极致调优。

2024-05-16 21:03:15 750

原创 Python 中的分步机器学习

在此步骤中,我们将通过几种不同的方式查看数据:1 数据集的维度。2 查看数据本身。3 所有属性的统计摘要。4 按类变量对数据进行细分。

2024-05-15 14:17:26 817

原创 python机器学习随机数生成器

本教程分为5部分;他们是:1.机器学习中的随机性2.伪随机数生成器3.何时为随机数生成器播种Seed4.如何控制随机性5.常见问题。

2024-05-15 09:58:09 410 1

原创 K折交叉验证

本教程分为5部分;他们是:1.k 折交叉验证2.k的配置3.工作示例4.交叉验证API5.交叉验证的变化。

2024-05-15 09:06:33 394

原创 机器学习数据表示为阵列

了解了如何使用 Python 访问和重塑 NumPy 数组中的数据。1.如何将列表数据转换为 NumPy 数组2.如何使用 Pythonic 索引和切片访问数据。3.如何调整数据大小以满足某些机器学习 API 的期望。

2024-05-15 06:21:20 601 1

原创 如何在Python中加载机器学习数据

在开始机器学习项目之前,您必须能够加载数据。机器学习数据最常见的格式是CSV文件。在Python中加载CSV文件的方法有很多。

2024-05-14 22:17:38 368

原创 点云分割论文阅读01--FusionVision

在计算机视觉领域,鉴于不同的环境条件和不同的物体外观所产生的固有复杂性,将先进技术集成到 RGB-D 相机输入的预处理中提出了重大挑战。因此,本文介绍了 FusionVision,这是一种适用于 RGB-D 图像中对象的鲁棒 3D 分割的详尽管道。传统的计算机视觉系统主要针对 RGB 相机,因此在同时捕获精确的物体边界和在深度图上实现高精度物体检测方面面临着局限性。为了应对这一挑战,FusionVision 采用了一种集成方法,将最先进的对象检测技术与先进的实例分割方法相结合。

2024-05-13 17:28:26 695

原创 用 Python 从头开始​​编写线性回归

对所有点的偏导数求和,再用设置的学习率来更新m和b,m和b的偏导数将为我们提供一个方向,我这里把损失函数的梯度理解为一个总向量,m和b的偏导数是梯度的两个分量。error,m,b构成一个三维图,执行梯度下降来获得最小点。一旦我们计算出误差,梯度意味着斜率的起点,就像一个指南针,总是指向碗底。接下来我们要最小化这个误差,这个误差基本上是一个信号,对我们来说是一个指南针,告诉我们要变小,这就是梯度下降的作用。找到最佳拟合线的方法是使用梯度下降,我们将随机绘制一条线,计算该线的误差。

2024-05-13 06:48:14 347

原创 线程同步--条件变量,信号量

这里讨论的特定函数与条件变量有关,条件变量是同步原语,允许线程挂起执行并等待某些条件发生。如果信号量的值为0,调用线程将阻塞,直到信号量值变为非0。如果超时,则返回错误。条件变量不是锁,可以引起线程阻塞,某个条件满足以后阻塞线程或解除线程,他不能解决数据混乱的问题。: 通过增加信号量的值来释放信号量,如果有线程因等待这个信号量而阻塞,它将被唤醒。的非阻塞版本,如果信号量的值为0,则立即返回错误,而不是阻塞。此函数解除阻塞所有当前在指定条件变量上阻塞的线程。: 销毁一个未命名的信号量,释放它可能占用的资源。

2024-05-12 22:40:26 749

原创 从头理解transformer,注意力机制(下)

第一个是在解码器里面,这个注意力上会加一个掩码,就是因为在推理的时候,解码器部分是一个词一个词生成的这就代表了你生成到某个词的时候,这个词它只能受到它之前词的影响,不应该被未来生成的词所决定。维度它是每一个输出的维度,再乘以头的个数,然后最后得到这个结果以后,还会再和一个W矩阵相乘,再得出一个输出的词向量。多头注意力机制比卷积神经网络它有更大的可能性,它不再局限于卷积核,必须是围绕一个中心的,是可以中间可以跨越很多个头头,对很远的地方去产生联系,所以这个可能性就要更多,也可能会比卷积神经网络更灵活。

2024-05-12 10:09:29 855

原创 线程同步--互斥锁,读写锁

饥饿发生在某些线程无法获得必需的系统资源。这个函数通常在一个线程完成对受保护的共享资源的操作后调用,以释放互斥量,允许其他线程可以锁定此互斥量并访问相同的资源。在多线程编程中,互斥量是同步原语的一种,非常关键于防止所谓的“竞态条件”(race conditions),即多个线程同时访问和修改同一共享资源而引起的不可预测结果。初始化是在互斥量使用之前必需的步骤,以确保互斥量在首次使用时处于已知的状态。通过合理使用互斥量的锁定与解锁操作,可以有效管理线程之间对共享资源的访问,保障数据的完整性和程序的稳定运行。

2024-05-11 07:44:12 730

原创 从头理解transformer,注意力机制(上)

Q和K是得到了这一组词向量自己和自己之间的相互关系,再用这个相互关系来修正词向量,让词向量的每一个维度都能得到修正,和V相比,这里修正之后得到的词向量,都会根据上下文进行修正,这些词向量,除了词典里那个客观的语义外,还会根据上下文对语义本身进行一些校准而以上也就为一句话一段话多个词向量叠在一起这些内容增加了主观性,让你说的话和我说的话可以表达不同意思。

2024-05-10 21:57:50 1062

原创 神经网络与空间变换关系

不同是 神经网络的一层运算不只有矩阵乘法,还会有一个加法。以及 进行完线性计算后,还要经过非线性的激活函数。,隐藏层中神经元的个数就是变换后空间的维度,代表可以升维也可以降维。​2. 加上偏置系数b,相当于对空间向量进行了一个平移操作。隐藏层虽然有了更深的层,但是神经元的个数却在减少。隐藏层越深,抽象程度越高。

2024-05-10 16:23:05 250

原创 矩阵和空间变换理解

把向量和矩阵相乘看作是,是其中一种看法代数角度:向量的一行和矩阵的一列逐项相乘再相加等于新向量的一项w代表原来坐标轴和新坐标轴之间的变换关系,而a和b体现的是原来向量的关系向量和坐标系关系是相对的。

2024-05-10 15:58:01 361

原创 Linux线程概述与线程操作

被取消的线程可以忽略取消请求、延迟处理请求或立即终止,具体取决于线程的取消状态和类型设置。这意味着一旦这个线程完成它的任务(在这里是打印一条消息并休眠一秒),它将自动释放所有资源,而不需要主线程等待它或者回收它的资源。这些标识符在进程的所有线程中都是共享的。输出将显示每个线程的不同 ID,证明每个线程都有其唯一的标识符。这个函数通常在线程函数的末尾使用,但也可以在线程函数的任意位置调用,以便在不需要完全运行完整个函数的情况下退出线程。在 Linux 系统的早期版本中,真正的线程支持是不存在的。

2024-05-10 08:33:59 1034

原创 二叉树遍历总结

在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树。

2024-05-08 16:25:11 627

原创 RAG系统进阶

离线步骤:文档加载文档切分向量化灌入向量数据库在线步骤:获得用户问题用户问题向量化检索向量数据库将检索结果和用户问题填入 Prompt 模版用最终获得的 Prompt 调用 LLM由 LLM 生成回复。

2024-05-08 10:54:48 970

原创 Linux守护进程

会话与进程组:会话是进程组的容器,可以包含多个进程组。在一个会话中,可以指定一个进程组作为前台进程组,其他的则作为后台进程组。前台进程组可以接收来自控制终端的输入,而后台进程组则不能。会话与控制终端:会话首进程可以为会话获取一个控制终端,这个终端成为整个会话及其所有进程组的交互中心。控制终端可以被用来管理会话中的进程,如发送中断信号。进程组与控制终端:在有控制终端的会话中,只有前台进程组可以直接从控制终端接收输入和处理特定的控制信号(如 SIGINT)。

2024-05-08 10:08:11 786

原创 Linux进程通信--共享内存

是 Unix 和类 Unix 系统中 System V 共享内存 API 的一部分,用于执行各种控制操作,如查询状态、设置权限、标记共享内存段的删除等。是 Unix 和类 Unix 系统中 System V 共享内存 API 的一部分,用于将共享内存段从调用进程的地址空间中分离。作为键值来创建一个新的、无法通过键值访问的共享内存段,只能通过进程间继承或通过返回的共享内存标识符来访问。是管理共享内存生命周期的关键部分,确保共享内存使用后能够正确地从进程中解除映射,以维护系统的健康和稳定。

2024-05-08 08:14:04 727

原创 rag-embeddings基础流程

LLM 的知识不是实时的LLM 可能不知道你私有的领域/业务知识。

2024-05-07 22:21:58 972

原创 Linux进程通信-信号

在 C 语言中,killpid_t pid: 指定要发送信号的进程 ID。如果pid大于 0,信号将发送给具有该 ID 的进程。如果pid等于 0,信号将发送给与发送者同一进程组的所有进程。int sig: 要发送的信号。例如,SIGTERM是请求终止进程的标准信号,SIGKILL是强制终止进程的信号。在 C 语言中,raiseint sig: 要发送的信号代码。例如,SIGINT通常用于表示中断信号(如Ctrl+C触发的),而SIGTERM用于请求终止程序。在 C 语言中,abort。

2024-05-07 21:06:15 1075

原创 Linux进程间通信-内存映射

内存映射(Memory Mapping)是一种高效的文件访问技术,它将文件的一部分或全部映射到进程的地址空间。通过这种方式,文件可以像访问内存一样进行读写操作,这通常由操作系统来管理。内存映射提供了对文件的高效随机访问,并能显著提高大量数据处理的性能。

2024-05-05 21:51:03 450 2

原创 openai funciton calling使用

在 API 调用中,您可以描述函数,并让模型智能地选择输出包含调用一个或多个函数的参数的 JSON 对象。Chat Completions API不会调用该函数;相反,模型会生成 JSON,您可以使用它来调用代码中的函数。本指南重点介绍使用聊天完成 API 进行函数调用,有关助手 API 中函数调用的详细信息,请参阅助手工具页面。

2024-05-05 18:44:21 853

原创 SVM直观理解

给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。为了找到最大间隔超平面,我们可以先选择分离两类数据的两个平行超平面,使得它们之间的距离尽可能大。当训练数据线性可分时,通过硬间隔(hard margin,什么是硬、软间隔下面会讲)最大化可以学习得到一个线性分类器,即硬间隔SVM,如上图的的H3。

2024-05-04 10:56:00 989 1

原创 openai文本生成

有一个与使用语言模型相关的整个领域,被称为“提示工程”,但随着该领域的发展,其范围已经超出了仅仅将提示工程设计为使用模型查询作为组件的工程系统的范围。这些模型的输入也称为“提示”。但请注意,对于某些模型,输入中的代币与输出中的代币的每个代币的价格是不同的(有关更多信息,请参阅定价。但请注意,系统消息是可选的,没有系统消息的模型行为可能类似于使用通用消息,例如“你是一个有用的助手”。等聊天模型使用令牌的方式与完成 API 中可用的模型相同,但由于它们基于消息的格式,因此更难以计算有多少令牌将被对话使用。

2024-05-03 00:13:41 591 1

原创 python面向对象编程

可以使用class关键字加上类名来定义类,通过缩进我们可以确定类的代码块,就如同定义函数那样。写在类里面的函数我们通常称之为方法,方法就是对象的行为,也就是对象可以接收的消息。方法的第一个参数通常都是self它代表了接收这个消息的对象本身。print(f'学生正在学习class Student : def study(self , course_name) : print(f'学生正在学习 {course_name } .') def play(self) : print(f'学生正在玩游戏.')

2024-05-01 09:34:18 967

原创 Linux进程间管道通信

与匿名管道不同,有名管道在文件系统中有一个实际的目录条目,这使得不相关的进程(即不是父子关系的进程)也能通过这种方式进行通信。例如,有名管道更适合在一个守护进程和一些短暂的客户端进程之间进行通信,而匿名管道则适合在一个复杂的管道命令中,将多个子命令连接起来进行数据传输。这种机制是通过创建一个简单的通信方式,即一个数据流,从一个进程的输出作为另一个进程的输入。,使用管道时不存在消息或者消息边界的概念,从管道读取数据 的进程可以读取任意大小的数据块,而不管写入进程写入管道的数据块的大小是多少。

2024-04-30 23:17:12 732

原创 深入理解多层感知机MLP

前向传播是神经网络计算和输出预测的过程。它从输入层开始,通过隐藏层(如果有的话),最终到达输出层。在每一层,每个神经元接收来自前一层的输入,这些输入根据前一层的输出和相应的权重进行加权求和,加上一个偏置项,然后通过激活函数处理以产生这一层的输出。

2024-04-30 17:08:48 695

原创 python常用库函数

key } is {value } ")key } is {value } ")key } is {value } ")key } is {value } ")使用可以提供一种函数式的方法来进行加法运算,这使得在需要将运算符作为函数传递或者处理的编程风格中非常方便和有效。这种方式简化了代码,特别是在涉及到高阶函数或复杂表达式的情况下。

2024-04-28 16:12:03 933

原创 多进程控制

这类进程的直接父进程不存在,所以被操作系统的特定进程(在大多数Unix系统中是init进程,PID为1)收养。init进程周期性地执行等待操作来收集其子进程的退出状态,从而确保这些进程不会变成僵尸进程(未清理的终止进程)。未经回收的终止进程(即僵尸进程)不会继续执行,但它们在进程表中占据位置,并保留与其相关的进程标识符(PID)。进程回收是操作系统中一项重要的任务,主要涉及回收已终止进程的资源,并清理系统中的进程表条目。在实际编程中,确保进程正确回收是非常重要的,尤其是在涉及到大量并发子进程的应用程序中。

2024-04-27 21:39:18 1125

原创 Python重点数据结构基本用法

在Python中,要构造分支结构可以使用、和关键字。在Python中构造循环结构有两种做法,一种是循环,另一种是循环。在Python中, 函数是一个非常实用的工具,主要用于生成一个不可变的数字序列。它通常用在循环(如 循环)中,以控制循环的次数。下面详细介绍 函数的用法和一些示例。 函数可以有以下几种形式的参数:使用一个参数:使用两个参数:使用三个参数(正步长):使用三个参数(负步长):注意事项 生成的是一个 对象,而不是列表。这意味着它在任何时间点只保存起始点、终点和步长

2024-04-24 18:53:02 1061 1

原创 GDB多进程调试

在使用GDB(GNU Debugger)进行多进程调试时,你可以使用几种不同的方法来管理和调试多个进程。

2024-04-24 16:25:58 511

原创 C++认知

对于社会人士参加的 C++ 职位的面试,如果是大型互联网公司,虽然社会招聘问的更多的是项目经验,适当地为一些基础的算法和数据结构知识做一些准备也是非常有用的。接着,分析和研究每个线程的用途以及线程之间交互的,这就是整体把握,接着找我感兴趣的细节去学习。我曾经面试过一些开发者,看简历项目经验丰富,实际一问的时候,只是把别人的框架或者库拿来包装调用一下,问及其技术原理时,不是顾左右而言他就是说不清道不明模棱两可含糊不清,这一类人往往比不知道还让人讨厌,面试官一般反感这一类面试者所谓的项目经验。

2024-04-24 14:39:54 782 1

原创 进程概述与进程创建

程序和进程是计算机科学中的基本概念,它们经常被提到,尤其是在操作系统的上下文中。

2024-04-22 16:02:29 442

原创 文件目录操作

文件属性操作函数在不同编程语言中,处理文件属性的函数和方法各有不同。这里我将分别介绍 C 和 Python 中的一些常用文件属性操作函数。C 语言在 C 语言中,标准库提供了几种函数来获取和修改文件的属性。这些函数主要通过操作系统的系统调用来实现,常用于POSIX系统(如Unix、Linux)。获取文件属性stat 和 fstat:这些函数用于获取文件的状态信息,如大小、创建时间、修改时间、访问权限等。stat 函数通过文件名获取信息,而 fstat 则通过文件描述符获取。示例

2024-04-21 20:40:46 720

原创 Linux系统IO

Linux系统中的IO函数主要包括两大类:标准C库中的函数和Linux系统调用。这些函数可以用于文件操作、网络通信、设备控制等多种IO任务。以下是Linux系统中常用的IO函数和系统调用的概述:标准C库IO函数这些函数是高级的、封装好的,并且与操作系统的底层实现相隔离,提供了便捷的接口给程序员使用。

2024-04-21 17:32:42 833 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除