自定义博客皮肤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)
  • 收藏
  • 关注

原创 准确率、精确率、召回率、F1值

4. F1 = 2 /(1/精准率 + 1/召回率)=(2*精准率*召回率)/ (精准率+召回率)(在我看来是基于真实类别来判别的,所以分母是该类的真是类别全部个数)(在我看来是基于预测结果来判别的,所以分母是预测该类的全部个数)3.召回率 = 对于一类预测正确的个数 / 真正是该类的全部个数。2.精确率 = 对于一类预测正确的个数 / 预测该类的全部个数。1.准确率 = 预测正确个数 / 总样本的个数;由于需要对精准率和召回率的综合,才引出了F1。准确率和召回率都是基于一类进行研究的。

2025-03-22 10:41:45 393

原创 C++ 类和对象----构造函数

(1)、没有显示定义构造函数,则C++编译器会自动生成一个无参的默认构造函数class Datepublic:////如果用户显式定义了全缺省构造函数,编译器将不再生成//{//}private:int _year;int _month;int _day;int main()// 将Date类中构造函数屏蔽后,代码可以通过编译,因为编译器生成了一个无参的默认构造函数Date d1;d1.Print();return 0;(2)、用户显式定义编译器将不再生成。

2025-03-17 19:22:35 373

原创 卷积神经网络(知识点)

这主要是通过池化层(如最大池化)或步长大于1的卷积实现的。:随着特征图尺寸的减小,较高层的神经元具有更大的感受野,从而能够覆盖原始输入图像的更大区域。由两种方法:1.增大步长:卷积的时候不是一次一步,而是一次多步,类似一张图片,在原来的像素基础上,每隔一个取一个像素点。:所有组的输出会被拼接在一起,再经过另一个1x1的卷积层来恢复通道数,最后加上原始输入(残差连接),得到最终的输出。是在ResNet基础上进一步发展的模型,它引入了“分组卷积”的概念,旨在以更少的参数实现更高的准确率。

2025-03-16 23:52:33 962 1

原创 C++复试笔记(五)

简单来说,就是分组进行排序,把数组里的元素分成不同的组进行排序(这种排序的内核就是插入排序),刚开始时gap(gap指的是组中元素的间距)比较大,让数组更加有序,最后当gap=1时(此时就是插入),数组已经接近有序,在进行插入排序可以节省大量的时间,时间复杂度大大降低。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。用于函数内部声明的变量时,它意味着该变量的生命周期贯穿整个程序运行期间,但其作用域仅限于声明它的函数内部。

2025-03-16 19:37:26 738

原创 复试计算机综合知识(一)

特性二叉排序树 (BST)平衡二叉树定义对于每个节点,左子树的所有节点值小于该节点值,右子树的所有节点值大于该节点值。树的高度差不超过1,或者满足其他平衡条件(如红黑树)。查找效率平均为 O(log⁡n)O(logn),但在最坏情况下(如完全不平衡的树)可以退化为 O(n)O(n)。总是保持在 O(log⁡n)O(logn)。插入/删除效率同查找效率,取决于树的形状。同样总是保持在 O(log⁡n)O(logn),但由于需要维护平衡,实际实现可能更复杂。平衡性。

2025-03-14 16:31:50 595

原创 C++复试笔记(四)

重载指的是在一个类中可以创建多个方法,它们具有相同的名字但参数列表不同(参数的数量、类型或顺序)。返回类型可以相同也可以不同,但仅仅改变返回类型而不改变参数列表不会构成方法重载。特点:发生在同一个类内部;方法名相同但参数列表不同。目的:增加函数的灵活性,允许以不同的方式调用同名的方法。public:// 方法重载:两个整数相加// 方法重载:三个整数相加// 输出: 8// 输出: 10return 0;当子类定义了一个与父类静态方法同名的静态方法时,称作方法的重定义或隐藏。

2025-03-14 15:39:57 699

原创 C++复试笔记(三)

友元函数和友元类、解引用和后置++、数组指针、new对象要显示调用析构函数、前置++、后置++和短路

2025-03-13 20:36:13 743

原创 深度学习----激活函数

如果没有激活函数,无论网络多么复杂,最后的输出都是输入的线性组合,而纯粹的线性组合并。引入激活函数之后,由于激活函数都是非线性的,这样就给神经元引入了非线性元素,使得神经。网络可以逼近任何非线性函数,这样使得神经网络应用到更多非线性模型中。激活函数分为 sigmoid函数 和 relu函数。例如下面,加了不同激活函数的结果。不能解决更为复杂的问题。

2025-03-13 15:02:03 282

原创 C++复试笔记(二)

错误。运算符重载只能重载 C++ 中已经存在的运算符,不能创建全新的运算符。例如,你不能定义一个全新的运算符**来表示幂运算。

2025-03-12 17:02:34 912

原创 C++复试笔记(一)

安全性strcpy不提供对目标数组越界的保护,容易导致安全问题;而strncpy提供了一定程度的安全性,通过限制最大复制字符数来避免溢出,但仍需注意手动添加终止符。终止符strcpy保证目标字符串总是以\0结尾;而strncpy只有在复制的字符数少于n时才会添加\0,否则需要用户自己确保目标字符串以\0结束。性能strncpy在某些情况下可能比strcpy慢,因为它需要额外的操作来填充剩余的空间为\0(当源字符串长度小于n时)。

2025-03-09 18:50:47 1084

原创 初识Bert

在学习Bert之前我们先了解“递归神经网络(RNN和 “长短期记忆(LSTM)”我们如果仅仅识别每个字的含义,那么在一句话中没有相同的字还是可以的但是如果一句话中有相同的字,那么我们进不能识别每个字的含义,因为有可能相同的字,位置不一样,词性也不一样,那么含义就会不一样。因此就引出了 递归神经网络(RNN和长短期记忆(LSTM。

2025-03-09 15:40:42 1304

原创 为什么有残差连接,网络才能走很深?

传统神经网络在层数增加时面临的主要挑战之一是梯度消失或梯度爆炸问题,这会使得深层网络难以训练,因为反向传播过程中更新权重所需的梯度变得极其不稳定或微小,导致前面层的权重无法得到有效的更新。这意味着输入x不仅经过几层变换F(x)后输出,还会被直接加上这个变换的结果,即输出变为F(x) + x。:由于有了恒等映射的存在,新的层至少可以表现得像没有这些层一样好,不会比浅层网络差。:通过短路机制,即使某些层没有学到有用的特征表示,它们也不会阻碍梯度过早地衰减为零,从而保证了信息可以跨多层有效传播。

2025-03-09 15:27:16 215

原创 分类学习(加入半监督学习)

自定义的数据集类,用于从指定路径读取图片及其标签(或无标签),并应用相应的变换。它支持三种模式:训练(train)、验证(val)和半监督学习(semi)。该类实现了。

2025-03-07 19:42:40 1109

原创 深度学习——分类学习

【代码】深度学习——分类学习。

2025-03-05 15:13:09 89

原创 深度学习之图像学习知识点

预训练模型的最后一层通常是分类层,其输出类别数与训练数据集的类别数相匹配(如1000类)。对于新任务,类别数可能不同(如11类),因此我们需要替换或调整最后几层,以适应新任务的类别数。

2025-03-04 19:56:07 425

原创 深度学习---卷积神经网络

AdaptiveAvgPool(7)就是无论刚开始输入特征图有多大,最后只能变为7*7的特征图。最常用的就是最大池化,可以认为最大池化不需要引入计算,而平均池化需要引出计算(计算平均数)Pooling(2)就是每2*2个格子pooling成一个格子,相当于减半。每种池化还分为Pooling和AdaptiveAvgPool。最后,进行拉直,还是进行Linear操作。池化分为最大池化和平均池化。

2025-03-04 10:22:57 1167

原创 深度学习——线性回归(二)

【代码】机器学习——线性回归(二)

2025-03-02 20:11:06 129

原创 深度学习(一)线性回归

【代码】深度学习(一)线性回归。

2025-02-28 23:48:09 111

原创 C++入门----namespace、缺省参数、函数重载、引用、内联函数

/命名空间里可以定义变量、函数、结构体int A;int val;

2025-01-17 11:27:27 427

原创 K-Means聚类算法的实现

【代码】K-Means聚类算法的实现。

2024-03-09 21:27:57 479

原创 机器 学习

B、kNN算法中k这个参数可以根据实际情况来调整。A、kNN算法的预测效率与训练集的数量有关。A、kNN算法的训练阶段需要构建模型。D、kNN算法不属于无监督学习。B、kNN算法只能用于二分类。C、kNN算法只能用于回归。D、kNN算法属于监督学习。C、kNN算法支持多分类。1、下列说法正确的是?

2024-03-06 19:22:49 563

原创 kNN算法:对红酒数据进行分类

【代码】kNN算法:对红酒数据进行分类。

2024-03-06 19:18:27 1646 1

原创 机器学习-概述

2024-03-05 07:47:07 441 1

原创 Linux常见指令

在认识Linux的常见指令时,我们要先指导Linux的周边知识说一说,在Linux中---“一切皆文件”,无论是键盘输入还是屏幕打印,都是把屏幕或者键盘当成文件来操作的,文件是由文件属性和文件内容组成的,所以未来对文件的操作,无外乎是对属性的操作和对内容的操作。

2024-03-05 00:05:10 2153 1

原创 Pandas初体验

【代码】Pandas初体验。

2024-03-04 16:26:21 402

原创 Numpy初体验

【代码】Numpy初体验。

2024-03-04 16:22:53 423

原创 编译+链接+预处理详解

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义int main()return 0;#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义 宏(define macro)。例如:定义一个SQUARE宏定义计算一个数的平方。

2023-10-22 23:58:59 108 1

原创 通信录详解————(自动扩容、文件保存)

在通讯录中, 可以做到基本的增删查改,也可以实现通讯录自动扩容,也可以将输入的联系人的信息保存到文件当中,不会因为程序的退出而内存销毁,而是保存到文件当中,因此在下次打开程序时,也可以将文件保存的联系人的信息读取出来,真正的做到了通讯录保存的功能当删除李华时,我们再将通讯录打印出来,就可以看到李华的信息已经被删除了我会在文章的后面将原代码贴上:contact.h contact.c test.c。

2023-10-17 08:57:30 428

原创 结构体、位段、枚举、联合体------------详解

位段就是通过结构体来实现的以位(bit)为单位数据储存结构,并且允许程序员对位进行修改。因此,我们就可以看的出来,位段是一种节省空间的用法。位段的声明和结构是类似的,有两个不同:1.位段的成员必须是int 、unsigned int、singed int(在C99之后,也可以是其他类型,但基本都是int、char类型)2.位段的成员名后边有一个冒号和一个数字。int _b : 5;A就是一个位段类型那A的大小是多少呢?

2023-09-25 22:56:25 149 1

原创 C语言----常见字符串函数和字符函数

注意:在返回大于0或者小于0的数字时,不同的编译器规定的不同,但是我们只要看返回值是否 大于0或者小于0 就可以了。功能:所求字符串以'\0'为结束标志,返回值是字符串'\0'前面的字符个数(不包含'\0')返回值: 该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。如果返回值 > 0,则表示 str1 大于 str2。有任何的重叠,复制的结果都是未定义的,memcpy一般都是对没有内存重叠的内存操作。注意:1.所求的字符串中必须包含'\0',但是在计算中,不需要计算'\0'

2023-09-23 00:23:55 195 3

原创 指针详解(一):字符指针、指针数组、数组指针、函数指针

到了这里,我们可以大胆的猜测,ptr1 和ptr2 既然是test函数的地址 ,那么,我们在调用ptr1 和 ptr2 的时候,能不能不需要解引用,直接用 ptr1() 、ptr2() 来调用test函数,毕竟我们在平时调用 test 函数就是直接test();字符指针: 指向字符型数据的指针变量,因为每个字符串在内存中储存都是连续的,并且首地址都是唯一确定的,用字符指针储存字符串的首地址,就可以储存整个字符串。所以这里传递的arr,其实相当于第一行的地址,是一维数组的地址。

2023-08-21 10:44:48 252 1

原创 整数、浮点数在内存中的储存方式

我们可以看到,a和b的在内存中储存顺序有些反常:这是因为我的电脑是采用的小端储存的方法。储存方法一共有两种,分别是小端(存储)模式和大端(存储)模式:大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。

2023-08-04 11:42:32 371 1

原创 移位操作符(<<左移操作符 、 >>右移操作符)和位操作符(&按位与、 |按位或、 ^按位异或)和逻辑操作符(&&逻辑与、 ||逻辑或)

移位操作符(<<左移操作符 、 >>右移操作符)和位操作符(&按位与、 |按位或、 ^按位异或)和逻辑操作符(&&逻辑与、 ||逻辑或)

2023-07-28 12:44:53 1418 1

原创 C语言——简易扫雷小游戏

我们首先要构建两个棋盘:mine()和show();mine()是为了布置雷和排查雷的,而show()是为了展示在玩家的界面,mine()和show()两个棋盘大小一样,初始化棋盘时,我们规定将mine()都初始化为 '0',(为了在后期排查雷更加的方便),show()都初始化为 ' * '

2023-07-27 10:30:36 174 1

原创 C语言小游戏———“三子棋”(基础版)

电脑下棋是下‘#’,所以规定玩家赢 ——return '*',电脑赢 ——return '#')电脑下棋是通过 rand() 函数和 srand((unsigned)time(NULL)) 时间戳来获得棋盘坐标的随机数。(现在的我,只完成了能够让电脑下棋,而没有让电脑智能的下棋,电脑下棋的这一部分还可以进一步的优化)因为是以玩家的角度输入坐标 (x,y),所以在棋盘真实的坐标中是 (x-1,y-1);判断游戏是否继续一共有 4 种结果,我们规定:(1) 玩家赢 ——return '*'

2023-07-26 10:46:04 100 1

原创 创建一个整形数组,完成对数组的操作:1、实现函数init() 初始化数组为全0 2、实现print() 打印数组的每个元素 3、实现reverse() 函数完成数组元素的逆置。

【代码】创建一个整形数组,完成对数组的操作:1、实现函数init() 初始化数组为全0 2、实现print() 打印数组的每个元素 3、实现reverse() 函数完成数组元素的逆置。

2023-07-25 10:50:57 989

原创 C语言的输入输出的方式 :scanf()&printf() 和 getchar()&putchar()和 gets()&puts() 基本用法

gets:读取字符串,用回车结束输入,可接受回车键之前输入的所有字符,并用’\n’替代 ‘\0’,(gets遇到’\n’后将其翻译为结束符’\0’(其ASCII码为0)),回车键不会留在输入缓冲区中。可以看出来,用 puts() 函数连换行符 '\n' 都省了,使用 puts() 显示字符串时,系统会自动在其后添加一个换行符, 而且puts可以直接输出字符串。scanf :当遇到回车,空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中。),应该用gets;

2023-07-20 11:14:30 1832 1

原创 密码检查 C语言

题目:小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求。细读完题目,我们可分别通过题目所给的要求编写代码,分析可以通过遍历输入的密码。3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;3、 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;1. 密码只能由大写字母,小写字母,数字构成;2、密码只能由大写字母,小写字母,数字构成;2. 密码不能以数字开头;1、密码不能以数字开头;4. 密码长度至少为8。

2023-07-12 17:42:25 763 1

原创 define与typedef的区别

是把该类型定义一个别名,别名是一个独立的类型了,使用这个类型创建的变。其中a为 int *a,b为int b;是宏定义,仅仅是直接替换。

2023-07-07 18:11:19 117 1

原创 C语言常见的转义字符

\ 用于表示一个反斜杠,防止它被解释为一个转义序列符。\“ 用于表示一个字符串内部的双引号。\' 用于表示字符常量'\a 警告字符,蜂鸣。\b 退格符。\ddd ddd表示。\xdd dd表示。

2023-07-07 17:56:59 130 1

空空如也

空空如也

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

TA关注的人

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