- 博客(66)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 python
"has attribute" 的缩写,用于检查一个对象是否具有指定的属性或方法。"is instance" 的缩写,用于检查一个对象是否属于指定的类型。
2023-10-19 22:51:23
44
原创 c语言复习
char x[5]={'a','b','\0','c','\0'};printf("%s",x);由于 格式化字符串是以 结尾来确定字符串的结束位置,因此 只会输出前两个有效字符 和 ,后面的 不会被输出。因此,最终输出为 char b[10]={'1', '2', '3'};printf("%d\n",strlen(b)); //3printf("%d\n",sizeof(b)); //10 的格式化输出,结果将是 ,按照 的格式化输出,结果将是 。最小两位宽
2024-07-15 20:15:01
235
原创 基础乐理入门
调号的格式为“唱名=音名”,简谱采用首调唱名法,如1=C表示的是C大调,即唱名do对应音名C,以此类推唱名re,mi,fa,sol,la,si分别对应音名D,E,F,G,A,B。即声音的名字,声音是物体振动产生的,不同的声音会有不同的振动频率,而同一个声音的振动频率是固定的。简谱中“1=C”表示的是C大调,CDEFGAB间的音高距离符合“全全半全全全半”的规则,是自然大调的一种。若干高低不同的乐音,围绕某一有稳定感的中心音,按一定的音程关系组织在一起,成为一个有机的体系,称为调式。音高:指音调的高低。
2024-06-08 20:40:04
770
原创 从多层感知机到transformer
候选记忆元: ˜C t ∈ R (n×h)1.单隐藏层的多层感知机。LSTM 长短期记忆网络。3.现代循环神经网络。GRU 门控循环单元。
2024-05-27 19:45:59
385
原创 批量化处理和矩阵(torch)
三维张量和二维张量相乘,相当于多批次(每一批次多组)的二维矩阵相乘,结果是一个三维张量。如[3,6]就是[1,2]和[[1,1],[2,2]]矩阵乘法后相加得到的。二维张量和二维张量相乘,相当于多组权重和多组变量相乘,结果是一个二维张量。二维张量和一维张量相乘,相当于多组权重和变量相乘,结果是一个一维张量。似乎确实是这样,只不过最后的结果一个是一维张量,一个是零维张量。一维张量和一维张量相乘,相当于权重和变量相乘,结果是一个数。右下角是最后一组权重和最后一组变量的乘积。那么[1,2]和[[2],[2]]
2024-05-18 15:49:39
332
原创 现代目标检测器组成
通常,一个颈部neck由几个自下而上的路径和几个自上而下的路径组成。具有该机制的网络包括特征金字塔网络(FPN)、路径汇聚网络(PAN)、BiFPN和NAS-FPN。(3)颈部neck: 近年来发展起来的目标检测器常常在主干和头部之间插入一系列混合和组合图像特征的网络层,并将图像特征传递到预测层。two stage: R-CNN系列,包括fast R-CNN、faster R-CNN、R-FCN和Libra R-CNN。综上所述,一个普通的物体探测器是由“特征输入、骨干网络、颈部和头部”四部分组成的。
2024-05-17 17:16:08
189
原创 plt.show()函数显示图像时内嵌
如果您在Jupyter Notebook中使用PyCharm,可以使用IPython的`%matplotlib inline`魔术命令,将图像内嵌到Notebook中。当使用Matplotlib的pyplot库中的`plt.show()`函数显示图像时,默认情况下会以弹出窗口的形式显示。这将使得所有后续的`plt.show()`调用将在QtConsole中显示图像而不是弹出窗口。这将确保所有后续的`plt.show()`调用将在Notebook中显示图像而不是弹出窗口。
2024-04-24 14:09:24
234
原创 第三方包的info文件夹作用
要使用`info`文件夹中的信息,通常不需要直接操作该文件夹,这些文件夹中的信息由包管理工具(如pip或conda)自动读取和处理。通过查看`info`文件夹中的内容,用户可以了解包的详细信息,以及如何正确地配置和使用特定的第三方包。第三方包中包含一个名为`info`的文件夹通常用于存储该包的元数据信息,例如包的版本,作者,许可证,依赖关系等。3. `requirements.txt`或`requirements.yaml`:列出包的依赖关系,指定该包需要的其他包或库。
2024-04-24 14:02:53
284
原创 批量规范化(batchnormalization)
µ ˆB 是小批量B的样本均值,σˆ B 是小批量B的样本标准差。应用标准化后,生成的小批量的平均值为0和单位方差为1。由于单位方差(与其他一些魔法数)是一个主观的选择,因此我们通常包含 拉伸参数(scale)γ和偏移参数(shift)β,请注意,γ和β是需要与其他模型参数一起学习的参数。“魔法参数”来规范化或调整模型的行为。这些参数通常不是通过数据或者明确的推断得出,而是根据经验、直觉或者试验进行调整的,因此被称为“魔法参数”。
2024-04-21 21:27:53
884
原创 深度卷积神经网络的整体运行流程(以alexnet为例)
即使是网络只有一个隐藏层,给定足够的神经元和正确的权重,我们可以对任意函数建模,尽管实际中学习该函数是很困难的。因此,下面的反向传播函数计算z=u*x关于x的偏导数,同时将u作为常数处理,(正向传播x>y,x>z,即z对x有两条传播途径,分别是y,2x*x,相加就是结果,现在把对y求导那条路断了,结果只有y了,也就是x^2,也就是u)y是作为x的函数计算的,而z则是作为y和x的函数计算的。我们想计算z关于x的梯度,但由于某种原因,希望将y视为一个常数,并且只考虑到x在y被计算后发挥的作用。
2024-04-20 15:46:15
712
原创 softmax回归的从零开始实现
y_hat是矩阵,那么假定第二个维度存储每个类的预测分数。我们使用argmax获得每行中最大元素的索引来获得预测类别。最后得到正确预测的数量。Accumulator实例中创建了2个变量,分别用于存储正确预测的数量和预测的总数量。当我们遍历数据集时,两者都将随着时间的推移而累加。注意,虽然这在数学上看起来是正确的,但我们在代码实现中有点草率。矩阵中的非常大或非常小的元素可。先线性模型得出值,softmax转换为(0,1)之间。能造成数值上溢或下溢,但我们没有采取措施来防止这点。评估在任意模型net的精度。
2024-04-20 14:13:22
250
1
原创 git使用
git rm --cached <file> 取消暂存区。git add *.txt 只是提交txt 结尾的文件。git diff id1 id2 两个版本之间的差距。git rm 删除版本库中的文件 同事删除本地文件。systeminfo查看电脑信息。git branch -d dev 删除分支。git switch dev 切换新的分支。git add *.text 批量提交。git reflog 找到回撤命令。git ls-files 文件列表。hard 硬回撤,慎用。
2024-04-05 10:37:55
363
原创 C++ 中的头文件和源文件
例子:存在cellphone.h这个头文件引用了#include "huawei.h",之后又有china.cpp这个源文件同时导入了#include "cellphone.h" 和 #include "huawei.h"。此时huawei.h就在一个源文件里引用了两次。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。(包括类的成员的声明和方法声明)、
2024-03-10 16:22:38
724
原创 matlab 01 基础知识
ESC删除代码 上箭头最近代码(commandhistory也是) shift+enter 切换上下句 光标选中然后enter执行某段代码。type filename 展示filename文件内容。format 仅输出显示更改,不保存。move on是一种显示模式。以使焦点返回到命令行窗口。magic 5*5的矩阵。
2024-03-07 21:36:42
347
原创 glob path(python库)
与glob.glob()的区别是:glob.glob()可同时获取所有的匹配路径,而glob.iglob()一次只能获取一个匹配路径。from glob import golb #从glob模块导入glob函数。获取一个可遍历对象,使用它可以逐个获取匹配的文件路径名。mport glob #导入整个glob模块。
2024-03-06 21:14:05
390
原创 Canny边缘检测算法(python 实现)
设定一个阈值上界maxVal和阈值下界minVal,图像中的像素点如果大于阈值上界则认为必然是边界(称为强边界,strong edge),小于阈值下界则认为必然不是边界,两者之间的则认为是候选项(称为弱边界,weak edge),需进行进一步处理——如果与确定为边缘的像素点邻接,则判定为边缘;5. 利用滞后技术来跟踪边界。和强边界相连的弱边界认为是边界,其他的弱边界则被抑制。由真实边缘引起的弱边缘像素将连接到强边缘像素,而噪声响应未连接。,只要其中一个为强边缘像素,则该弱边缘点就可以保留为真实的边缘。
2024-01-28 15:41:20
627
原创 特征点匹配 harris
并使用差分来近似导数:Gx(x,y)=H(x+1,y)−H(x−1,y)Gy(x,y)=H(x,y+1)−H(x,y−1)在实际操作中,对图像求梯度通常是考虑图像的每个像素的某个邻域内的灰度变化,因此通常对原始图像中像素某个邻域设置梯度算子,然后采用小区域模板进行卷积来计算,常用的有Prewitt算子、Sobel算子、Robinson算子、Laplace算子等。算法的核心是利用局部窗口在图像上进行移动,判断灰度是否发生较大的变化。在图像局部内,图像梯度越大表示该局部内像素值变化越大(灰度的变化率越大)。
2024-01-27 17:04:55
690
原创 仿射变换代码opencv
是一个OpenCV宏,用于在代码中进行性能分析和测量。它可以用于标记代码的某个区域,以便在运行时获取该区域的性能指标。(不太明白,先放一下)顺时针为正,左上角为默认坐标原点。
2024-01-16 21:35:19
526
原创 c++的宏举例和理解
宏提供了一种机制,能够使你在编译期替换代码中的符号或者语句。当你的代码中存在大量相似的、重复的代码时,使用宏可以极大的减少代码量,便于书写。
2024-01-15 21:33:05
439
原创 VPN VPS DNS 等专业名词解析
例如,.com表示商业用途,.org表示非盈利组织,.net表示网络服务,.edu表示教育机构,.gov表示政府部门。通过使用 CDN,用户可以从距离更近的边缘节点获取内容,减少了传输延迟和网络拥塞,从而提高了加载速度和响应时间。隧道和端口转发:SSH 还提供了隧道和端口转发的功能。例如,在www.example.com中,“com”是顶级域,“example”是二级域,“www”是三级域。CDN 是一种分布式计算和存储系统,通过将内容分发到位于全球不同位置的服务器上,以提供更快速、可靠的内容传输和访问。
2023-12-21 14:18:35
1427
原创 adam优化器和动量
此项能够累积各个参数 的历史梯度平方,频繁更新的梯度,则累积的分母项逐渐偏大,那么更新的步长(stepsize)相对就会变小,而稀疏的梯度,则导致累积的分母项中对应值比较小,那么更新的步长则相对比较大。AdaGrad能够自动为不同参数适应不同的学习率(平方根的分母项相当于对学习率α进进行了自动调整,然后再乘以本次梯度),大多数的框架实现采用默认学习率α=0.01即可完成比较好的收敛。缺点:主要缺陷来自分母项的对梯度平方不断累积,随之时间步地增加,分母项越来越大,最终导致学习率收缩到太小无法进行有效更新。
2023-12-19 22:23:58
614
原创 机器学习入门:预测房价
正在从http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv下载../data/kaggle_house_pred_train.csv...X_part, y_part,得到某一折的数据和标签,j=i,那么就是验证折,否则为测试折,多个测试折拼接在一起,形成测试集。然后用one-hot来处理其他的object特征。stream流的方式获取响应是指通过网络请求获取到的响应数据并不一次性地返回,而是以数据流的形式逐步传输。
2023-12-18 13:50:32
988
原创 权重衰减weight_decay
使用L 2 范数的一个原因是它对权重向量的大分量施加了巨大的惩罚。这使得我们的学习算法偏向于在大量特征上均匀分布权重的模型。在实践中,这可能使它们对单个变量中的观测误差更为稳定。相比之下,L 1 惩罚会导致模型将权重集中在一小部分特征上,而将其他权重清除为零。这称为特征选择(feature selection),这可能是其他场景下需要的。总之就是施加一个惩罚项,防止模型过拟合,并具有鲁棒性。查了好几次了,一直忘,记录一下。
2023-12-18 12:57:03
383
原创 一键多值 以及数据结构(python
如:s='hello' s=s+'world' 会导致id(s) 发生变化。列表:sort倒序为true 可以变化更改 ,可以排序。而:lst.append(300) id 不变。快成八股文了,不写了,等我用上集合这东西了再补充,没见用过。字典:可以变化更改,不可排序,键不可重复。注:str 也是不可变的,不可以增删改。
2023-12-14 22:21:35
523
原创 分布偏移总结
但标签函数(即条件分布P(y | x))没有改变。统计学家称之为协变量偏移。也就是训练的数据集和测试的数据集图片有灯光,亮度等一些区别所造成的。如:你穿裙子,那你是个女的。如:分布没变,但是猫狗的图片变成的卡通的。和协变量偏移相反,标签变了(标错了)某个变量和结果强相关,后来发生变化。虽然输入的分布可能随时间而改变,上面的猫被错标为狗,是错误的学习。
2023-12-13 21:46:16
459
原创 一文讲透:python浅拷贝深拷贝
个独立的空列表,它们在内存中具有不同的地址,对其中一个列表的修改不会影响到其他列表。运算符进行复制,这些空列表实际上是指向同一个内存地址的,它们是共享的。使用列表生成式,我们创建了。
2023-12-13 21:02:33
448
原创 hypervisor
从系统软件设计者的角度来看,Hypevisor简化了他们的工作,因为每个用户都是相互独立的,而且各自拥有简单的机器模型。最后是硬件事件发生的情况,OS要么自己处理这个事件(定时器timeout的Case),要么把该事件转送给另一个线程(如设备驱动)。这意味着一台机器可以服务于多个用户,给每一个用户分配一个特定的时间片,在该时间片内某个用户的任务将被执行。简单起见,可以理解为每个用户获得了一个虚拟机(VM),从每个用户的角度来看,他们每个人都像是拥有自己的大型机。
2023-12-09 16:37:22
376
原创 虚拟机安装 hyper—v 沙盒
选择安装位置并设置保留第一代的虚拟参数即可开始分配内存,根据自己的需求进行设置。右键虚拟机启动并开始运行,进行镜像系统的安装便完成了。1、确认电脑内存在8G及以上并提前准备完整的系统镜像。安装Hyper-V并重启电脑后打开程序选择虚拟机。
2023-12-09 15:41:25
658
原创 yolov4
输入端:在模型训练阶段,做了一些改进操作,主要包括Mosaic数据增强、cmBN、SAT自对抗训练;BackBone基准网络:融合其它检测算法中的一些新思路,主要包括:CSPDarknet53、Mish激活函数、Dropblock;Neck中间层:目标检测网络在BackBone与最后的Head输出层之间往往会插入一些层,Yolov4中添加了SPP模块、FPN+PAN结构;
2023-11-21 20:42:03
51
原创 yolov3
多尺度预测 (引入FPN)。更好的基础分类网络(darknet-53, 类似于ResNet引入残差结构)。分类器不在使用Softmax,分类损失采用binary cross-entropy loss(二分类交叉损失熵)Softmax使得每个框分配一个类别(score最大的一个),而对于Open Images这种数据集,目标可能有重叠的类别标签,因此Softmax不适用于多标签分类。Softmax可被独立的多个logistic分类器替代,且准确率不会下降。
2023-11-19 16:18:20
129
原创 从sigmoid到softmax的过程以及求导
hardmaxhardmax最大的特点就是只选出其中一个最大的值,即非黑即白。但是往往在实际中这种方式是不合情理的,比如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章对于每个可能的文本类别的概率值(置信度),可以简单理解成属于对应类别的可信度。所以此时用到了soft的概念。Softmax的含义就在于不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。
2023-11-19 15:57:16
75
原创 yolov2
原先的YOLOv1中,每个网格处的B个边界框都有一个置信度,但是类别是共享的,因此每个网格处最终只会有一个输出,而不是B个输出(置信度最高的那一个),倘若一个网格包含了两个以上的物体,那必然会出现漏检问题。这种多尺度训练的好处就在于可以改变数据集中各类物体的大小占比,比如说,一个物体在608的图像中占据较多的像素,面积较大,而在320图像中就会变少了,就所占的像素数量而言,相当于从一个较大的物体变成了较小物体。为了更好的检测出一些比较小的对象,最后输出的特征图需要保留一些更细节的信息。
2023-11-18 13:49:10
116
原创 resnet和dens
举个例子,以恒等映射作为我们希望学出的理想映射f(x),我们只需将 右图虚线框内上方的加权运算(如仿射)的权重和偏置参数设成0,那么f(x)即为恒等映射。残差连接提供了一个直接的、无衰减(identity)的路径,一般的神经网络到开始那几个的时候基本上就已经没有梯度了,所以更新特别慢,而有了恒等映射(identity mapping),梯度不会消失,那更新肯定快。(反向传播更新的不就是卷积核的那几个参数嘛,而主干后面参数基本都是0,只有x,那么梯度就会一直在1左右徘徊喽,所以不会梯度消失和爆炸)
2023-11-16 21:15:31
34
原创 目标检测ssd和yolov1的简单理解
原先的YOLOv1中,每个网格处的B个边界框都有一个置信度,但是类别是共享的,因此每个网格处最终只会有一个输出,而不是B个输出(置信度最高的那一个),倘若一个网格包含了两个以上的物体,那必然会出现漏检问题。这种多尺度训练的好处就在于可以改变数据集中各类物体的大小占比,比如说,一个物体在608的图像中占据较多的像素,面积较大,而在320图像中就会变少了,就所占的像素数量而言,相当于从一个较大的物体变成了较小物体。为了更好的检测出一些比较小的对象,最后输出的特征图需要保留一些更细节的信息。
2023-11-15 17:32:44
159
原创 锚框训练简洁流程实现
由于阈值和anchor box数量选择的问题,同一个目标可能会输出多个相似的预测边界框,这样不仅不简洁,而且会增加计算量,为了解决这个问题,常用的措施是使用非极大值抑制(non-maximum suppression,NMS)。举例说明一下,图中棕色的为行人的真实标签,黄色的为车辆的真实标签,红色的框是从feature map映射的anchor box,这样的话通过交并比就很难获取feature map中每个单元对应的标签。在模型的预测阶段,怎么才能获得预测的边界框呢?(这玩意我是真的看过,现在给忘了)
2023-11-10 16:26:18
57
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人