自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 学习笔记(四)—— 类和对象

2)无返回值(void也不需要写);3)对象实例化时编译器自动调用对应的构造函数;4)构造函数可以重载(写多个构造函数,提供多个初始化方式);构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。其实并不是,任何类在什么都不写时,编译器也会自动生成6个默认成员函数;有些编译器(如VS)会优化,直接用寄存器加载;默认成员函数的定义也就是用户没有显式实现,编译器会自动生成的成员函数;如果一个类中什么成员都没有,简称为空类;

2025-03-23 22:18:14 415

原创 C++ 学习笔记(三)—— 入门+类和对象

之前有说过,在C++中兼容的结构体,本质上已经升级为了类,但是纯正的类,更喜欢用class作为定义类的关键字;而且,struct和class还是有一定的区别的,主要就是在访问限定符的使用上。访问限定符:public(公有)、protected(保护)、private(私有)【目前暂时可以将保护和私有看作是一样的】——公有在类的外面可以访问,保护和私有只能在类里面访问;类定义了一个新的作用域,类的所有成员都在类的作用域中。该方案在常规情况下价值比较低,只有在类型名字很长的时候才能体现它的价值;

2025-03-18 20:46:55 447

原创 自探索大语言模型微调(一)

tokenize可以通过tokenizer实现,但需要注意的是tokenizer与模型是相匹配的,如果使用了错误的tokenizer会让模型很困惑,这样调出来的模型会一团糟。根据B站上搜索到的资料,datasets这个库可以直接下载丰富的数据集合和与训练模型,调用也非常的简单,唯一的缺点就是,需要外网(翻墙),用国内的网数次无果后,选择放弃。注意:有一些小伙伴可能会把pytorch里面的dataset和hugging face里面的datasets搞混,但它俩是不同的库里面的不同的类。

2025-03-16 18:17:37 1173

原创 C++ 学习笔记(二)—— 入门

【X.cpp】——>预处理:头文件展开/宏替换/去掉注释/条件编译——>【X.i】——>编译:检查语法,生成汇编代码(指令级代码)——>【X.s】——>汇编:将汇编代码转成二进制机器码——>【X.o】——>链接:合并链接,生成可执行程序——>【X.exe】要实现函数重载,在链接的时候,生成的符号表会引入函数名修饰规则,不同的语言/不同的系统/不同的编译器有不同的函数名修饰规则。有了函数名修饰规则以后,被重载的函数的函数名就不是一样的了。引用不是定义一个新的变量,而是对已有的变量取别名。

2025-03-15 17:57:43 314

原创 Linux 学习笔记(十九)—— 进程间通信

vscode。

2024-11-17 00:35:47 352

原创 Linux 学习笔记(十八)—— 动静态库

【代码】Linux 学习笔记(十八)—— 动静态库。

2024-11-06 14:44:00 323

原创 基于mobilefacenet的掌纹识别

GitHub - bubbliiiing/arcface-pytorch: 这是一个arcface-pytorch的源码,可以用于训练自己的模型。FAR=0.02655(误判率);TAR=0.94764(判对率);其中:palmset是原始图像;ROI是提取后的图像;—— 【提取码:ofaj】

2024-10-30 15:23:09 263

原创 Linux 学习笔记(十七)—— 文件系统

理解 inode 和 软硬链接;Ext2;文件 = 文件内容 + 文件属性;——> 磁盘上存储的文件 = 存储的文件内容 + 存储的文件属性;文件内容使用数据块存储,文件属性使用inode(固定128字节);

2024-10-25 11:56:40 484

原创 Linux 学习笔记(十六)—— 重定向与缓冲区

一、文件重定向矩阵的下标,也就是文件描述符的分配规则,是从0开始空的最小的文件描述符分配给进程新打开的文件; 文件重定向的原理是,关掉1(输出),然后打开文件,这个新打开的文件的文件描述符就会是“1”,这样顺理成章,原本应该输出到屏幕的内容就被输入到文件中了; 操作系统有系统调用可以直接实现上述原理,dup2();#include <unistd.h>int dup2(int oldfd, int newfd); —— duplicate a file descr

2024-09-28 22:30:49 386

原创 Linux 学习笔记(十五)—— 基础IO

— 打开文件,返回文件指针,输入文件路径(如果只有文件名,默认为当前路径),打开方式”w“,"r"等;#include —— 标准输入/输出头文件。

2024-09-23 12:27:35 322

原创 Linux 学习笔记(十四)—— 简易shell实现

char* fgets(char* s【指向存储位置,存储从文件中读取的信息】, int size【指定最多读取的字符数,包括换行和文件结束标志】, FILE* stream【文件指针,表示要从哪个文件中读取数据】);sprintf(char* str【字符数组的指针,这个数组将存储格式化后的输出字符串】, const char* format, ...【可变参数列表,这些参数根据格式字符串中的格式说明符进行相应的格式化】);char* strtok(char* str 【指向要分割的字符串的指针。

2024-09-13 16:44:18 390

原创 Linux 学习笔记(十三)—— 进程控制

注意:1)exit()和_exit()的区别在于,_exit()是纯正的系统调用函数,不做其它动作,而exit()函数在终止进程之前还会做,执行用户定义的清理函数,冲刷缓冲关闭流等动作;父子进程可写的部分,页表权限也设置为只读,这样之后父/子进程修改相关内容的时候就会出现异常,操作系统识别该部分可写,然后给要修改内容的进程重新分配物理内存空间和更新页表,最后把权限设置为正确的读写权限;在linux中“fork()”函数非常重要,它的作用是从已存在的进程中创建一个新的进程,新进程为子进程,而原进程为父进程;

2024-09-05 17:38:11 347

原创 Linux 学习笔记(十二)—— 进程地址空间

一个子进程刚创建的时候,除了继承父进程的大部分的PCB之外还继承了父进程的进程地址空间和页表,因此同一个变量父子进程的虚拟地址是相同的,而在修改的时候,进程页表对应的物理地址会被系统修改,因此就在实际内存中有了自己的位置,此时虚拟地址不会受影响;一个进程包含“PCB + 可执行程序(代码 + 数据)”,而具体来说,“可执行程序(代码 + 数据)”就是一个“进程地址空间 + 页表 + 部分内存”,其中进程地址空间的排布就如上图所示;栈区的内存分配是从高地址往低地址分配,而堆区是低地址往高地址分配;

2024-09-04 14:41:38 256

原创 Linux 学习笔记(十一)—— 环境变量

将寄存器放入CPU里面的目的主要是提高运行的效率,存储进程相关的数据;而CPU寄存器里面保存的进程相关的临时数据就被称为。好,不然别的进行载入之后,所有的数据都会被清空;当进程重新载入CPU运行的时候,要。CPU里面有很多寄存器,大体上可以分为两类:可见、不可见;进程从CPU上离开的时候,要将自己的上下文。上下文,然后接着上次继续运行;

2024-08-27 17:33:41 233

原创 Linux 学习笔记(十)—— 进程属性

在vim里面写代码的时候如果想要查man手册,不需要退出“:!man 函数名”就可以跳转到man手册,“q”退出;

2024-08-22 12:15:33 341

原创 Linux 学习笔记(九)—— 进程概念

每一个组件都是独立的个体,因此想要它们一起工作,各个单元都必须用“线”连接起来:1、系统总线(CPU和内存交互);2、IO总线(内存和外设);有的设备是纯的输入,有的设备是纯的输出,也有既是输入也是输出的设备;

2024-08-21 12:14:33 271

原创 Linux 学习笔记(八)—— Linux 工具 3

有了这样的makefile文件以后,命令行只要敲“make”回车,那么mycode.c就会自动被编译;“make”指令是执行“makefile”文件里的第一行,如果第一行变成“clean: tab 内容”那么“make”就会执行清除;如果被依赖的文件不存在在外面的目录中,make会扫描makefile文件里的其它依赖关系,找到生成被依赖文件的其它依赖关系,递归生成,直至完成;mycode: mycode.c —— 依赖关系:名为mycode的可执行文件依赖mycode.c的源文件。make是一条指令;

2024-08-07 12:28:13 250

原创 Linux 学习笔记(七)—— Linux 工具 2

gcc只能编译c语言,因此要求文件名的后缀为“.c”;g++可以编译c语言也可以编译C++因此文件名后缀可以是“.c”也可以是“.cpp”;sudo指令可以对一条指令进行提权,但是这个需要一个前置条件,即对应用户要在root的白名单中(sudoers名单);在“root ALL=(ALL) ALL”后面添加“普通用户名 ALL=(ALL)ALL”编译该文件,如果没有bug会生成可执行文件,如a.out;sudoers名单只能是root用户添加,权限:r--r-----地址:/etc/sudoers。

2024-08-02 12:30:23 365

原创 Linux 学习笔记(六)—— Linux 工具 1

Linux安装软件,途径:

2024-07-30 17:32:50 214

原创 Linux 学习笔记(五)—— 权限

Linux下有两种用户:超级用户(root)、普通用户su [用户名,root可以省略]切换用户,并不是以重新登录的方式,而只是单纯的角色的变化,当前目录不变;su - [用户名,root可以省略]切换用户,以重新登录的方式切换用户,当前目录会发生变化;root切换到普通用户不需要输入密码,普通用户切换到root需要输入密码(root的密码),普通用户1切换到普通用户2也需要输入密码(普通用户2的密码);sudo指令是需要root用户配置信任才可以,并不是任何普通用户都可以;

2024-07-29 00:14:45 366

原创 Linux 学习笔记(四)—— 基本指令 3

用于在文件树中查找文件,并作出相应的处理,没有权限会出现“permission denied”;find [路径,在路径下查找] [选项]date [选项] [+格式]时间最重要的作用在于日志;按照设定的格式显示时间;find (灰常重要)

2024-07-23 17:01:00 264

原创 Linux 学习笔记(三)—— 基本指令 2

输出,如 echo "hello Linux" > test.txt,将字符串写到test.txt文件中,echo "hello Linux"就是单纯打印;通过查看联机手册获取帮助,第一页是指令,第二页是系统调用,第三页是C语言语法;cp [源文件路径] [目标文件路径]echo [选项] [指令]man [选项] [指令]

2024-07-22 15:25:22 269

原创 C语言学习笔记(十)—— 指针进阶

/ 此时ptr1 == ptr2,常量数组不能修改,不会另外开辟一个一样的。// 此语句不是把“abcdsf”存入ptr中,而是把字符串常量“abcdsf”的首地址放进了ptr中。// 此条语句中p1是个数组,该数组里面存放的是int*指针变量。// 词条语句中p2是个指针,指向的类型为int [10]

2024-07-17 19:29:34 202

原创 C语言学习笔记(九)—— 数据的存储

数组类型、结构体类型(struct)、枚举类型(enum)、联合类型(union);

2024-07-16 12:15:08 191

原创 Linux 学习笔记(二)—— 基本指令 1

图形化界面【主】(Windows也有纯命令行,windows+r —>cmd)(现在Windows也在慢慢兼容Linux:powershell (windows+x—>终端) )我们在计算机上的所有行为都会转换为硬件行为!对于目录,该指令列出该目录下所有子目录和文件;操作系统是一款做软硬件资源管理的软件,它的终极目标是使计算机更好用!mkdir [选项] [目录或文件]touch [选项] [目录或文件]pwd [选项] [目录或文件]ls [选项] [目录或文件]cd [选项] [目录或文件]

2024-07-15 16:25:30 419

原创 C语言学习笔记(八)—— 调试

调试(debug),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。

2024-07-08 16:08:34 283

原创 C语言学习笔记(七)—— 结构体

结构体是一些值的集合,这些值称为成员变量。结构体和数组的区别在于,结构体不同成员的类型可以是不同的。

2024-07-08 15:23:21 232

原创 C语言学习笔记(六)—— 指针

不同类型的指针唯一的区别就在管理的范围不同,int*的指针管理4个字节,char*的指针管理1个字节,数组的指针管理整个数组;

2024-07-07 20:06:50 166

原创 C语言学习笔记(五) —— 操作符

](下标引用)、()函数调用、结构体调用:.、->

2024-07-06 15:53:31 378

原创 C语言学习笔记(四)—— 数组

数组是一组相同类型元素的集合;

2024-07-05 12:17:05 204

原创 C语言学习笔记(三)—— 函数(待补充11)

函数(又名子程序),是一个大型程序中的某部分代码,由一个或者多个语句块组成。它负责完成某项特定任务,而且相较于其它代码,具备相对独立性。C语言只规定了标准和库函数的约定,具体的实现是编译器自己实现的。因此,不同的编译器底层不一定相同,但调用的方法和返回之后是一样的。www.cplusplus.com 【新版不好用,用老版本,右上角“legacy version”】库函数(官方封装,可直接调用)、自定义函数;

2024-07-03 16:25:19 231

原创 C语言学习笔记(二)—— 分支语句和循环语句

C语言是结构化的程序设计语言——顺序结构、选择结构、循环结构;if、switch。

2024-07-02 14:34:16 1123

原创 C语言学习笔记(一)—— 整体了解

最开始人们使用二进制进行软件的编写,为了方便慢慢衍生出了助记符,使得汇编语言诞生了。之后高级编程语言,C语言才慢慢诞生。为了使C语言写的程序在不同的地方都可以使用,推出了C语言标准语法(C89、C90、C99、C11...)。C语言是面向过程的编程语言,C++/Java等是面向对象的编程语言。常见的C语言的编译器:clang(苹果系统)、GCC(Linux平台)、MSVC(windows,VS);Visual Studio:下载免费的社区版就可以~

2024-06-17 15:36:09 188

原创 C++ 学习笔记(一)—— 入门

C++是1982年本贾尼博士在C的基础上扩充了面向对象的概念,发明的一种新的程序语言;2)中期:《effective C++》《高质量程序设计指南——C++/C语言》(

2024-05-31 11:02:46 625

原创 Linux 学习笔记(一)—— 入门

Linux系统编程(30) Linux网络编程(20) 基于Linux平台的MySQL(10) (1.17.40)

2024-05-30 14:23:02 160

原创 Matlab 学习笔记(四)—— 程序流程控制

det:计算矩阵的行列式; rank:计算矩阵的秩; trace:计算矩阵的迹(对角线元素之和); rref:转化成行最简型矩阵; inv:计算方阵的逆矩阵; transpose:返回转置矩阵; triu:返回矩阵的上三角部分; tril:返回矩阵的下三角部分; eig:计算矩阵的特征值和特征向量; norm:计算向量和矩阵的范数;

2024-05-27 16:18:57 308

原创 Matlab 学习笔记(三)—— 矩阵运算

一、调用函数运算

2024-05-16 17:33:42 5066

原创 MATLAB 学习笔记(二)—— 矩阵操作

1)直接输入法:a = [1, 2, 3] a = [1 2 3] a = [1 enter 2 enter 3] a = [1;3] 【符号英文】例:1:10:3(返回1),5:2:1(返回空),10:-1:6(返回10,9,8,7,6),10:-100:5(返回10),10:-10:50(返回空)2)冒号法:A(起始值):step(步长):B(终止值)—— 不一定刚好在终止值结束。

2024-05-13 17:27:34 617 1

原创 Matlab 学习笔记(一)—— 基础杂乱小知识

MATLAB入门的操作类小知识

2024-05-11 11:24:10 506

原创 深度学习自己的小笔记

a.shape —— 返回值(num,num,num,...)取决于矩阵维度。numpy.shape——是看矩阵大小的函数。a.shape[X]——返回第几维对应的值。

2024-05-09 10:44:29 388

空空如也

空空如也

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

TA关注的人

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