自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 神经网络实战案例(含思路和全代码)- 在 Fashion-MNIST 数据集上实现完整的神经网络

背景:数据集中有十种物品的图片目标:构建一个完整的神经网络,能识别这些图片实现流程:导入数据集:import torchvisionimport torchvision.transforms as transformsimport torchimport torch.nn as nnimport torch.optim as optimfrom torch.nn import functional as Ffrom torch.utils.data import Da

2022-05-28 18:00:00 989

原创 机器学习预测实战 -- 信用卡交易欺诈数据监测(含方案和代码思路)

项目背景一批交易数据,数据总量28万,其中正常交易数据量占比99.83%,欺诈交易数据量仅占比0.17%。目标训练出一个模型,能判断出交易数据是正常数据还是欺诈数据方案一:下采样的方法训练模型获取数据import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as pltimport timeimport warningswarnings.filterwarning

2022-03-27 00:10:47 8712 66

原创 webSocket模块组件

try {});// 错误处理// 根据消息类型处理消息// 调用相应的业务逻辑// ...// 假设我们得到了响应数据"}};if (!task();} else {

2024-07-19 15:19:35 627

原创 c++人脸识别项目,满足工业界对于人脸识别系统的高标准需求!(一)

在工业界,,一直是实现计算机视觉和机器学习任务的热门语言,尤其是在需要。而(Facebook AI Similarity Search)作为一个高效的相似性搜索库,专为大规模特征向量的相似性搜索和聚类任务设计,尤其擅长处理高维向量空间中的近似最近邻搜索问题,这在人脸识别中尤为重要,因为人脸识别常常涉及到在大型特征数据库中快速查找最相似的人脸特征。,也是机器学习和AI领域广泛使用的语言,但在对性能有严格要求的工业级应用中,C++与FAISS的组合由于其卓越的性能表现,成为追求极致效率和资源利用的首选。

2024-07-19 15:11:23 903

原创 c++人脸识别项目,满足工业界对于人脸识别系统的高标准需求!(二)

在第一个章节时,我们完成了基本功能的实现,同时也带来了问题就是添加的人脸没有永久保存的问题。今天我们讲解决这些问题。

2024-07-19 15:11:08 529

原创 跨平台webSocket模块设计技术解决方案

目标:设计并实现一个能够在多种操作系统上运行的WebSocket通讯模块,支持与前端浏览器和HTTPS服务端进行数据交换。技术栈:C++11 ,使用跨平台库如 Boost处理网络IO,使用 JSON 库如 nlohmann/json 解析消息。

2024-07-19 15:09:53 700

原创 源码获取说明

我们讲到了建立人脸识别新增人脸和人脸搜索函数,其中都需要传入一个人脸数据来作为增加和搜索的依据,然后提到了在文中没有讲到的人脸检测和特征提取的部分。在此代码中我们会运用到libtorch和opencv来处理人脸数据。可以购买本专栏,然后用购买截图私信我获取源码。

2024-06-25 09:29:33 62

原创 STL标准模板库:现代C++编程的基石

STL(Standard Template Library)是C++编程语言中极其重要的一部分,它是一组高效且高度灵活的软件组件,旨在提升程序员的工作效率和代码质量。STL不仅提供了丰富的数据结构(容器),还包含了泛型算法和迭代器,三者紧密协作,构成了一个强大的工具库,广泛应用于各种复杂的数据处理场景。

2024-06-19 17:27:16 448

原创 函数模板与类模板深入解析及实例

函数模板和类模板是C++中泛型编程的核心,它们极大地增强了代码的复用性和灵活性。通过实例化,我们可以为不同数据类型生成定制化的函数和类,同时通过特化处理特殊情况,确保了泛型代码的适用范围和效率。理解模板的二次编译、隐式推断、重载规则以及特化技巧,对于高效地使用模板至关重要。类模板的成员函数只有在被调用时才实例化。如果成员函数是虚函数,则会在编译期实例化所有可能的版本。函数模板允许我们编写适用于多种数据类型的通用函数。数值形式的模板参数允许使用整数等作为模板参数。:特化类模板中的某个成员函数。

2024-06-19 17:24:10 402

原创 多态、虚函数表与动态绑定的深入解析

多态性允许子类重写基类中的方法,使得通过基类引用来调用这些方法时,实际执行的是子类中对应的实现。这一特性在C++中主要通过虚函数来实现。// 输出 "Woof!delete pet;在这个例子中,Animal类定义了一个虚函数speak()Dog类继承自Animal并重写了speak()方法。通过基类指针pet调用speak(),由于多态的存在,输出的是 "Woof!",而非 "Some animal sound"。

2024-06-11 09:51:45 400

原创 C++继承与派生

在C++中,通常讨论的是访问权限的继承(public, protected, private),而非“弱继承”和“强继承”的概念。但若以访问权限的角度理解,可以认为公有继承(public inheritance)允许子类完全访问基类的公开接口,体现了较强的继承关系;而私有或受保护继承(private/protected inheritance)限制了访问权限,可视为一种较弱的继承形式。

2024-06-11 09:45:52 255

原创 面向对象编程高级概念详解

析构函数以波浪线()开头,无返回类型,也无参数,用于释放对象占用的资源。它是对象生命周期结束时自动调用的特殊成员函数。

2024-06-03 16:08:26 334

原创 面向对象编程深入解析与实例

面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它围绕着“对象”这个核心概念构建。在OOP中,对象是数据(属性)和行为(方法)的封装体,模仿现实世界的实体,使软件设计更加直观、灵活和易于维护。

2024-05-30 15:03:11 306

原创 C++中引用的全面解析与实战应用

引用可以视为现有变量的别名,它不是独立的实体,而是目标变量的另一种访问方式。定义引用时必须初始化,并且初始化后不能更改引用的对象。// ref 是 num 的引用。

2024-05-24 15:42:56 444

原创 动态内存管理、左值与右值、引用详解

在C++编程中,有效地管理内存、理解左值与右值的区别,以及熟练使用引用是至关重要的技能。本篇博客将深入浅出地讲解这些概念,并通过实例加以说明。

2024-05-23 17:04:56 520

原创 C++中的复合数据类型及高级特性概览

C++作为一种面向对象的编程语言,提供了丰富的复合数据类型和高级特性,以增强代码的表达能力和效率。本文将概述结构体、联合体、枚举类型的基本概念,探讨函数重载的原则,解释重载解析的优先级,并简要介绍内联函数的作用及其优缺点。

2024-05-23 14:07:54 384

原创 线程基础与生产者消费者模型实践

线程是操作系统调度的最小单位,是进程内的一个执行路径。每个线程拥有独立的栈空间、程序计数器等资源,但共享所属进程的地址空间、全局变量等资源。

2024-05-21 11:16:54 405

原创 管道通信机制详解:无名管道 vs 有名管道

无名管道是一种简单的进程间通信方式,它是在内存中开辟的一个缓冲区,仅限于具有亲缘关系的进程间使用,即通常是由一个进程通过fork()函数创建其子进程后,两者之间共享的通信通道。无名管道不与文件系统关联,因此得名“无名”。有名管道,又称FIFO(First In First Out),是一种特殊类型的文件,存在于文件系统中,任何具有适当权限的进程都可以访问它,从而实现进程间的数据交换。它克服了无名管道的亲缘关系限制,使得不相关的进程也能通过它进行通信。

2024-05-14 16:44:44 559

原创 信号:进程间通信与异步事件处理的关键机制

信号作为一种强大的异步事件处理机制,在Unix/Linux系统编程中扮演着重要角色。通过合理设置信号处理方式,开发者可以有效地响应系统事件、实现进程间通信及管理进程生命周期。然而,信号处理也需谨慎,特别是要关注重入问题和信号处理函数的安全性,以避免潜在的并发问题。

2024-05-06 15:08:09 314

原创 进程管理与控制:从终止到回收的深入解析

通过深入了解进程的终止、回收机制以及waitwaitpidexecsystem和vfork的使用,我们能够更有效地管理和控制进程,确保系统的高效稳定运行。掌握这些核心概念和技术,对于系统编程、资源管理乃至软件开发的整体架构设计都有着不可忽视的作用。

2024-04-30 14:56:38 920

原创 深入理解Unix/Linux系统中的进程概念及其管理

在Unix/Linux操作系统中,进程是程序执行时的一个具体实例,每个进程都有其独特的生命周期和特性。本文将探讨进程的基本概念,如父子进程关系、孤儿进程和僵尸进程,并重点关注进程创建的关键API——fork()函数。进程概览:进程是操作系统进行资源分配和调度的基本单位,每个进程都拥有一个全局唯一的进程标识符(Process ID,简称PID)。当一个进程结束并被系统回收后,其PID可被重新分配给新的进程,遵循内核的延迟重用算法以避免PID冲突。父子进程关系:在Unix/Linux系统中

2024-04-23 16:48:03 602

原创 揭秘文件系统:符号链接、权限、内核结构及系统I/O

与硬链接相比,符号链接解析时需要更大的系统开销,因为它需要解析两次文件:首先是符号链接文件本身,然后是链接的目标文件。值为文件表项的指针,通过文件描述符,操作系统可以找到对应的文件表项,进而通过v节点指针定位到v节点,然后通过v节点中的i节点找到数据块编号,从而访问到文件的实际内容。例如,如果umask为0002,那么赋予0777权限的文件最终权限会变成0775,即取消了除文件所有者之外的其他用户对该文件的写权限。,它会返回一个新的文件描述符,新描述符与原来的描述符指向同一个文件表项,但其值为。

2024-04-19 15:45:11 536

原创 揭秘磁盘驱动器文件系统的内部机制

然后,根据i节点编号查找i节点映射表,找到i节点的实际存储位置,从中获取数据块编号。超级块存储了文件系统的总体信息,如同一本详细的账簿,记录了文件系统的格式、大小,以及i节点和数据块的总量、使用量和剩余量等关键数据。每个文件或目录在磁盘上都有一个与之对应的唯一i节点,i节点具有唯一的编号——i节点号。综上所述,磁盘驱动器上的文件系统凭借其严谨的结构设计,实现了对海量数据的高效管理和访问,成为现代操作系统不可或缺的核心组件。文件名和i节点之间的联系存储在目录文件的i节点数据块中,形成了所谓的硬链接。

2024-04-17 16:34:46 328

原创 内存管理:深入探索程序运行背后的关键机制

内存管理作为计算机科学的核心领域之一,直接影响着程序性能、安全性以及系统的整体稳定性。在本文中,我们将揭开内存管理的神秘面纱,深入剖析内存分配、回收以及相关的技术策略,同时探讨内存泄漏、碎片化等问题及其解决方案。malloccallocreallocfreenewdelete动态分配允许程序在运行时根据需要获取内存,并在完成任务后通过delete或delete[]释放。

2024-04-17 14:01:44 1312

原创 段错误:程序运行时的致命打击

在计算机编程的世界里,“段错误”(Segmentation Fault)是一个让许多开发者闻之色变的问题。它是一种特定类型的运行时错误,通常出现在程序试图访问其无权访问或不存在的内存区域时。本文将深入探讨段错误的概念、产生原因,并通过实例进行详细解析。

2024-04-15 15:45:05 910

原创 内存壁垒与段错误:守护程序运行的“规则”

内存壁垒(Memory Barrier),又称内存栅栏或内存屏障,是一种同步原语,用于确保特定内存操作的执行顺序,以及对内存状态变化的可见性。在多线程、多处理器系统中,由于缓存一致性协议的存在,可能导致内存操作的乱序执行或更新延迟,进而引发数据竞争或同步问题。内存壁垒就是用来解决这些问题的工具,强制实施特定的内存访问顺序和数据同步点。在现代操作系统中,每个进程都拥有自己独立的虚拟地址空间,即使不同进程内的虚拟地址看起来相同,但实际上它们映射到的物理地址是不相同的。举例来说,两个进程均声明了一个全局变量。

2024-04-15 15:14:48 372

原创 深入解析:虚拟内存——理解现代计算机内存管理的关键概念

虚拟内存与内存管理,这两个概念共同构成了程序执行背后的故事。理解它们,就如同掌握了剧本创作、舞台调度与后勤保障的艺术。在编程的世界里,

2024-04-11 16:46:04 977

原创 Linux中的错误处理艺术:理解错误编号与头文件引用

在Linux环境下开发程序时,准确且有效地处理错误是至关重要的。操作系统通过错误编号(Error Number)向程序反馈各种异常情况,帮助开发者定位和修复问题。本文将深入探讨Linux错误处理机制,并介绍如何查找特定错误编号对应的含义及其所在的头文件。

2024-04-10 14:45:00 384

原创 静态库与动态库

静态库的本质时将多个目标文件打包成一个文件,而链接静态库就是将库中被调用的代码复制到调用模块中,拓展名为.a。按照上述命令就可以制作成libtest.a静态库。

2024-04-09 19:56:52 1067 1

原创 liunx环境变量学习总结

在操作系统中,环境变量是一种特殊的变量,它们为运行的进程提供全局配置信息和系统环境设定。本文将介绍如何自定义、删除环境变量,特别是对重要环境变量的管理和定制,以及与环境变量相关的函数使用。要创建一个自定义环境变量,您可以在终端中输入以下格式的命令:然而,以这种方式设置的环境变量仅在当前终端会话中有效,且不会被子进程继承。若希望环境变量能在当前终端及其所有子进程中生效,并能在环境变量列表中查看到,应使用 命令: 删除环境变量要删除已存在的环境变量,可使用 命令:执行此命令后,指定的环

2024-04-09 14:15:00 1514

原创 卷积神经网络构建(pytorch)

在不设置stride(步长)的情况下,默认为一,可以通过对步长的设置来控制特征图的大小。但是当步长为1时,会出现中间部分被重复扫描的现象,‘中间重边缘轻’。当步长为3时,卷积核不会出现重复扫描的过程,但是最右边无法被扫描到,这时候需要用填充法对图像进行填充,由参数padding和padding_mode来控制。padding=1时,图像的上下左右各添加一个像素,padding_mode则可以选择要填充的值。其中输出通道和我们输入数据的通道数保持一致,输入通道和卷积核大小由自己决定,但要注意,

2023-03-13 17:04:24 492 1

原创 包含BN层的神经网络的学习率优化

结果由上图我们基本可以得出结论,学习率的变化会嚷有bn层的模型有较大的波动,即有bn层的模型对学习率变化更加敏感,而对于此类模型而言,调整学习率往往会获得更好的效果。

2022-11-10 09:16:35 649

原创 利用nn.BatchNorm构建带BN的神经网络

在上面模型中加入bn层,模型效果反而会变差,此时需要和别的参数进行联合调参。

2022-09-14 20:01:53 1034

原创 nn.Sequeential快速建模方法以及nn.init模型参数自定义方法

让参数值服从均值为0,方差为1的正态分布。让参数值服从0到1之间的均匀分布。用常量1代替参数所有取值。

2022-07-22 17:07:15 372

原创 模型优化方法

当迭代次数越多,越容易陷入我们梯度全为零的问题中,而较小的学习率就以为更小的步长,此时模型更加保守,更加不容易走到梯度为零的位置,而更小的梯度则需要更多的迭代次数(迭代次数与计算量有关),但relu函数的计算量相对于前两个函数来说较小,不会有显著提升(初始化输入的数据不能让梯度为零)。但是,如果梯度更新中,出现个别参数,较大的情况,则更新过程会出现波动,一部分更新很快,一部分得不到更新,出现梯度爆炸(梯度不平稳)的情况。根据上面的导函数图像性质,当输入数据为负时,会存在导函数取值为零,...

2022-07-21 11:34:04 1654 1

原创 深度学习欠拟合下的模型调优

优化:增加网络复杂度(不增加激活函数):可以画图观察到,对于loss来说没有显著的提升,但是稳定性得以提高。所以加入简单的线性层并不能达到拟合高此项的目的,后续我们加入激活函数对比之后可以确定的是,有relu激活函数的模型最稳定,且效果相对最好.........

2022-07-06 16:56:32 390

原创 深度学习数据集生成函数的创建与使用

dataset和dataloader:通过生成数据的生成器或者保存数据的映射关系来避免数据的重复储存数据生成:我们自己生成含有一定规律的数据集,三个函数可以分别生成回归,分类,小批量随机的数据集,利用该数据集,实现一些简单的模型回归模型(手动创建):快速实现(调库):......

2022-06-29 14:58:52 988

原创 分类,回归,随机小批量数据生成

数据集创建函数

2022-06-20 15:07:27 170

原创 要做的docker流程总结

目录docker安装的问题装镜像的问题通过来一键安装,安装时会出现类似Failed to fetch https://deepin-wine.i-m.dev/Packages Certificate verification failed: The certifica的报错通过打开文件,把报错中的地址注释掉,换成装镜像的问题镜像文件过大时,应查看docker保存路径,默认路径一般不够通过查看路径,然后修改打开文件,没有就创建一个。往里面加入:路径 /mnt/data/

2022-06-14 18:00:00 189

原创 Sub-process /usr/bin/dpkg returned an error code (1)

报错 Sub-process /usr/bin/dpkg returned an error code (1)

2022-06-05 17:27:00 146

包含两段机器学习实现和一段深度学习实现的信用卡欺诈检测源码

包含两段机器学习实现源码和一段深度学习实现的源码

2024-04-15

空空如也

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

TA关注的人

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