自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 问答 (1)
  • 收藏
  • 关注

原创 判断0~N范围内的每个数是否是素数/质数(统计素数个数)

三种统计素数的方法:暴力法、埃氏筛法、欧拉筛法暴力做法,直接遍历每个数,检验每个数是否是素数。对于检验数字m是否是素数,暴力做法是,检查m是否能被2m​范围内的任意一个整数整除。直接暴力求解每个数是否是素数。

2024-03-08 22:11:50 979 1

原创 深度学习的数值溢出问题

计算机导致数值溢出的根本原因在于,使用有限的位数去表示连续的实数。这就导致了误差的出现,我们称之为舍入误差。舍入误差会导致很多后果,其中下溢(underflow)和上溢(overflow)是其中较为典型的代表。接近0的数字因为舍入误差导致该数在计算机中表示为0;数量级特别大的数的被近似为无穷。

2024-02-26 17:33:43 928

原创 快速幂算法及其C++代码

数的快速幂,矩阵的快速幂问题1:对于,你是会选择使用来计算,还是使用来计算?回答:。显然,计算要比计算的代价更低。同理,任何幂次计算都可以使用上述的二分的方法,使得更低,即但是,上述的式子只是一个理想状态,即能够被2以及2的更高次幂整除,也就是说所有的二进制位上都为1。如果遇到其他的,例如,就不能简洁地使用上述的方法进行计算。问题2:如何能够简洁地计算所有的次幂呢?回答:使用二进制。回想一下,给定一个二进制,如何转换为十进制?例如给定二进制1011,转换成十进制如下所示(括号的下标代表进制数)

2023-11-22 11:37:11 539 1

原创 【手搓算法】反向传播算法 C++代码实现

/ 权重(上一层连到当前层)// 偏置// 上一层的输出乘上对应权重求和后的结果(未经过激活函数)// 经过激活函数后当前层的输出// 当前层的误差// 权重的梯度// 偏置的梯度将上面定义的网络层集合到一起,形成模型,同时使用一些函数使得能够清晰地访问我们需要的参数(这里请不用纠结为什么是layer-1private:// 隐藏层层数+1(隐藏层+输出层)// 存储隐藏层和输出层// 网络每一层的节点数,包括输入层// 训练数据(在构造函数中构建)

2023-11-13 22:46:47 125

原创 【python代码】坐标轮换法

坐标轮换法的python代码实现

2023-10-12 15:13:39 171 1

原创 【python代码】黄金分割法

黄金分割法的python代码实现

2023-10-12 15:08:18 280 1

原创 【踩坑记录】逻辑运算符的执行方式

最近在写一道算法题的时候,遇到了一个bug,主要是由于逻辑运算符的执行方式所导致的。代码的主要作用是遍历多叉树,返回数中是否有被上锁的节点,同时将所有节点存储到指定的容器中。可以看到,这是一个递归函数,使用for循环,对当前节点的所有子树进行遍历,问题就出在了,下面代码所示的这一句上面。这里就不得不提逻辑或运算符的执行方式了。对于这个表达式,如果a已经为true,那么程序将不会对b进行判断,直接忽略掉b的部分。

2023-09-26 20:47:23 52

原创 机器学习之变分推断

概率模型的中心任务就是求潜变量的后验概率分布pZ∣X,以及关于该后验的期望。前者是推断,后者是决策。px∣X​∫Z​px∣ZpZ∣XdZEpZ∣X​px∣Z)]​由此可见,对于后验概率分布的求解是十分重要的。。具体地,对于连续型随机变量,积分可能没有解析解,同时由于空间维度过高和被积函数复杂导致没有数值解;对于离散型随机变量,理论上是可以计算的,但是隐含状态的数量可能有指数多个,从而导致精确计算的计算代价过大。

2023-08-21 22:29:20 157 1

原创 Python argparse模块使用(简单版)快速上手

这篇博客的目的在于快速上手使用argparse模块,能够实现命令行传参。所以这篇博客不会对方法的各个参数进行解释,其中第一部分只介绍了最简单的使用方式,第二部分对一些内容进行补充说明。

2023-05-20 13:08:11 323

原创 在sklearn中使用LDA降维,并解决输出维度与要求维度不相等的问题

本文章先是展示了如何使用sklearn进行LDA降维,接着t通过查看源码,解决了输出维度与要求维度不一致的问题。

2023-04-05 15:49:23 744

原创 transformer中的缩放点积注意力为什么要除以根号d

前段时间在看transformer的时候,看到他的self-attention机制的公式里需要除以维度的算术平方根,想了一会没有想明白。回去看原论文。作者认为,当d较大时,点积的幅度也就变大,容易进入softmax函数的梯度消失区域。什么叫点积的幅度变大?这里作者指的应该是方差会变大。点积之后,数据的方差会改变,不等同于原分布。这就需要我们进行一个操作使方差等同于原分布。假设原分布是标准正态分布,那为什么需要除以根号d来归一化到标准正态分布呢?我尝试自己推导一下公式。

2022-12-04 18:36:05 3082 4

原创 【数据结构与算法】优先队列中的比较器

记录一下比较器的写法,以后要用时直接可以查阅(如果遇到新的写法会及时更新)

2022-11-25 17:37:31 453

原创 【踩坑记录】C++ 递归delete释放内存以及使用的时候遇到的问题或者使用析构函数释放内存

C++ 递归delete释放内存以及使用的时候遇到的问题或者使用析构函数释放内存

2022-11-20 14:43:09 1575

原创 【踩坑记录】C++ 单引号和双引号的区别

C++中单引号和双引号的使用方法是有区别的,单引号代表char,双引号代表string

2022-11-11 21:27:38 661

原创 C++ 指针(三)函数指针

本节将对函数指针进行简单的介绍。

2022-11-04 17:50:29 124

原创 C++ 指针(二)char与指针

上一小节对指针的操作进行简单的介绍,本小节主要介绍的是char类型和指针之间的一些联系。(虽然使用std::string很方便,但是我觉得了解这个还是有必要的)这里其实就可以产生一个疑问。使用char数组来储存字符串还挺好理解,就是将字符一个一个放入数组中,但是使用指针来储存是怎么进行储存的,指针p指向的地址是哪?上面两者的运行结果一致!那么答案显而易见了。arr是字符数组的第一个字符的地址,那么p其实也是指向的是字符串第一个字符的地址。

2022-10-29 20:29:45 2347

原创 C++ 指针(一)

C++指针(一)

2022-10-21 20:42:28 1992

原创 【踩坑记录】关于cv2.imshow的踩坑记录

可以看到,如果图像时float类型的话,imshow会将其每个像素点乘以255,因为他默认float类型就是取值在(0,1)之间。关于cv2.imshow()使用float类型输出的问题。下图左边是原图,右边是用float类型的输出图。先看cv2.imshow()的官方文档。所以输入的时候千万要检查数据类型。

2022-10-17 22:13:24 196 1

原创 【C++踩坑记录】返回值为数组名的问题

我在写快速排序的时候,由于需要返回两个数值,所以我就想着使用数组,但是当我将数组名作为返回值的时候就出了问题。在这里我意识到了可能是堆栈的问题,回过头去检查代码,发现问题所在。这样程序就能顺利执行了。

2022-10-15 21:35:32 254 1

空空如也

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

TA关注的人

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