自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 不同Normalization方法的比较(通俗易懂)

话不多说,先上图(从其他地方搜罗到的,感觉很清晰直观了)Batch Normalization(BN)——【最常见了属于是】对一个batch size数据的某一个channel做normalization,即减均值除方差 Layer Normalization(LN) ——【RNN、transformer,NLP中常见,因为输入为序列,长度不定即channel不同】对一个数据的所有channel做normalization Group Normalization(GN)——【BN要求Batc.

2022-04-10 21:52:18 1118

原创 Linux服务器上Screen的用法

1.安装在系统中执行:apt-get install screen安装成功后,输入screen -v即可看到如下的类似提示信息:Screen version 4.06.02 (GNU) 23-Oct-172.创建作业Screen -S [Name]创建作业后,你可以在Screen上开始训练你的神经网络,跑你的代码等等……通常来说训练网络或者跑一个时常很长的代码,我们会选择离开电脑。因此为了防止意外情况出现,我们就选择挂起。3.挂起Screen和重新连接挂起:Ctrl

2021-11-09 10:12:21 467

原创 过拟合与欠拟合问题

过拟合问题1.问题描述过拟合(over fitting),是指机器学习模型或深度学习模型在训练样本上表现得过于优秀,而在验证数据集以及测试数据集上表现不佳,模型的泛化能力弱。根本原因是特征维度(或参数)过多,样本过少,导致拟合的函数完美地经过训练集,但对于新数据的预测结果则较差。在训练中表现为:训练集的loss较小,acc较高,而测试集上的acc却较低。2.出现原因训练样本中的噪音数据干扰太大,大到模型过分记住了噪音数据的特征而忽略了真实数据间的输入输出关系。 训练样本数量太少,无

2021-09-28 23:02:48 318

原创 语义分割FCN与U-Net

FCN(Fully Convolutional Network)FCN也叫全卷积网络,从名字可以看出,FCN与CNN的不同之处就是,FCN将我们一般的经典分类网络模型(VGG、ResNet...)最后一层的FC(全连接层)全部换成了卷积层,这样可以得到二维的特征图,并通过在其后接softmax层来获得每个像素点的分类信息,从而解决了分割问题。核心思想:由于为全卷积网络,用conv层代替了fc层,故可接受任意尺寸的输入。 反卷积层,增大了数据的尺寸,输出的结果更为精细。 结合不同深度层结.

2021-09-28 21:45:48 819

原创 图像语义分割入门

常见的分割任务包括语义分割(semantic segmentation)FCN、实例分割(Instance segmentation)Mask R-CNN、全景分割(Panoramic segmentation)

2021-09-28 16:24:44 791

原创 深度优先搜索(DFS)与广度优先搜索(BFS)

深度优先搜索与广度优先搜索,都是图形搜索算法,存在相似之处却又不同。深度优先搜索(Depth First Search) 深度优先搜索,重点在深,简要来说就是对于每一个可能的分支路径都尽可能深入,深入到不能再深入为止,且每个节点只能访问一次。一般用堆数据结构来辅助实现DFS算法。 思想: 递归。假设初始状态下图中所有顶点均未被访问,则我们从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径...

2021-09-24 20:50:41 144

原创 SPPnet

空间金字塔层池化网络(Spatial pyramid pooling networks,SSPnets)可以通过计算共享来加速R-CNN,SSPnet是先对整张图片做卷积,由于卷积池化之后得到的特征图与原图片的特征位置是相对应的,所以直接在特征图上截取候选框,然后再使用做不同尺寸的最大池化将得到的特征向量拼接得到最终的特征向量。SSPnet相比于R-CNN测试速度加速了10-100倍,训练时间较少了3倍。...

2021-09-22 11:05:42 441

原创 深度学习分类任务评估指标总结

之前学习了机器学习与深度学习,对于这方面内容也是多有涉猎,但昨天经过师兄的问答考核惊觉自己对于这些评估指标概念并不能很好地表达出来,有种话到嘴边不知道该怎么讲的局促,一些专业术语不知道如何表述,我想这也是我的问题,显得很不专业,因此决定总结一下分类任务中的各类评价指标,当下温习,并供日后学习及参考。混淆矩阵 混淆矩阵是在分类情况下最为常用的一个指标,是一个可视化工具,在矩阵表格中我们可以很清楚地看到每个类别被识别正确的数量和识别错误的数量。它能够很好地反映一个分类模型的...

2021-09-18 17:55:34 1242

原创 Fast R-CNN浅解

使用VGG16作为网络的backbone,训练速度比R-CNN快了9倍,测试速度快了213倍,并且在PASCAL VOC 2012上实现了更高的map;与SPP Net相比,Fast R-CNN训练速度快了3倍,测试速度快了10倍,并且准确率更高;——单阶段训练算法----分类与边框回归的loss合并,梯度回传算法流程一张图像生成1k~2k个候选区域(使用Selective Search方法)将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图获得相应的特征矩阵将每个特

2021-09-03 11:07:58 351

原创 R-CNN浅解

R-CNN(Region with CNN faeture)1.候选区域的生成 利用Selective Search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略讲这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。2.对每个候选区域,使用深度网络提取特征 将2000候选区域缩放到227×227,接着将候选区域输入事先训练好的AlexNet CNN网络获取4096维的特征得到2000×4096维矩阵。3.特征送入每一类的SV...

2021-09-02 16:30:57 216

原创 NMS非极大值抑制(Non-max suppression)

非极大值抑制(Non-Maximum Suppression,NMS),可理解为搜索局部最大值,即抑制不是极大值的元素。由于在现有的目标检测算法中,都会产生数量巨大的候选框矩形,这些矩形框有很多指向同一目标,因此存在大量冗余的候选矩形框。而NMS可以很好地消除多余的框,找到最佳的物体检测位置。具体实现步骤为: 1.设定目标框的置信度阈值,常用阈值为0.5左右 2.根据置信度降序排列候选框列表 3.选取置信度最高的框A添加到输出列表,并将其从候选框...

2021-09-02 16:30:06 573

原创 Selective Search算法浅解

在目标检测任务中,一个很重要的问题就是如何确定所需检测的目标的位置,即候选框的位置确定问题。SS算法之前,关于这个问题,比较简单粗暴的算法就是穷举法或滑动窗口法,即在原始图片上进行不同尺度不同大小的滑动窗口,获取每个可能的位置。但这样做是存在很大弊端的,复杂度太高,会产生很多冗余的候选区域,并且由于窗口大小设置,不可能兼顾到每个尺度,因此得到的目标位置也不够准确。Selective Search算法采用候选区域方法(region proposal method)创建目标检测的感兴趣区...

2021-09-02 16:07:39 408

原创 AlexNet网络详解与pytorch实现

最近在学习B站一个up主的视频,很棒。故决定在学习过程中进行笔记整理和总结。(无它,自用自勉)给出收藏的博主笔记及up主笔记,以便自己日后查找翻阅。博主链接(内里给出几篇参考博客可读)AlexNet详解使用Dropout的方式在网络正向传播过程中随机失活一部分神经元,以减少过拟合可以发现,除 Conv1 外,AlexNet 的其余卷积层都是在改变特征矩阵的深度,而池化层则只改变(减小)其尺寸。1.各层详解Conv1注意:原作者实验时用了两块GPU并行计算.

2021-03-31 17:30:08 379

原创 LeNet网络详解与pytorch实现

最近在学习B站一个up主的视频,很棒。故决定在学习过程中进行笔记整理和总结。(无它,自用自勉)给出收藏的博主笔记及up主笔记,以便自己日后查找翻阅。博主链接 Pytorch中tensor(输入输出层)的通道排序为:[batch, channel, height, width]Pytorch中的卷积、池化、输入输出层中参数的含义与位置如下图所示1. 模型代码import torch.nn as nnimport torch.nn.fun...

2021-03-30 20:17:03 693 2

原创 CNN基础知识-误差计算

Cross Entropy Loss交叉熵损失1.softmax输出,所有输出概率和为12.sigmod输出,每个输出节点之间互不相干(其中Oi*为真实标签值,Oi为预测值,默认log以e为底等于ln)

2021-03-23 16:40:19 321

原创 归并排序(思想及代码实现)

基本思想:归并排序也是一类高效的基于比较的排序算法,是分治思想的典型应用。它的工作原理是首先将未排序序列分成n份元素个数为1的子序列(个数为1被认为是有序的),然后进行合并,最后子序列数为1即已排序序列。归并排序是时间复杂度为次平方中唯一的稳定的排序算法。基本步骤:将原始序列分成n份,每份元素个数为1。 反复进行有序序列的合并,直到最后子序列数为1。代码实现:void Merge(int arr[], int low, int mid, int high, int &ans[])

2020-09-11 15:49:42 363

原创 交换排序(思想及代码实现)

交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列前端移动。1.快速排序基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据要比另外一部分的所有数据都要小,然后再按照该方法对两部分的数据序列分别再进行快排。所以整个排序过程可以递归进行,以此达到整个数据均变为有序序列。基本步骤:将最左侧的元素作为‘枢轴’放入“哨所”。 设置low和high分别指向数组两端。 high向左移动,一旦遇到比哨所元素小的元素就将其移入左边的low位置。 low向右

2020-09-11 15:42:48 915

原创 选择排序(思想及代码实现)

1.简单选择排序基本思想:每次都从未排序的序列中选择一个最小的数放在已排序列的最左边,直至排序完成。void SelectSort(int list[], int len){ for(int i=1; i<len; i++){ int temp=i; for(int j=i+1; j<len; j++){ if(list[j]<list[temp]) temp=j; }

2020-09-10 11:42:11 1151

原创 插入排序(思想及代码实现)

1.直接插入排序基本思想:每次选择待排序序列中的第一条记录,根据其值大小将其插入到已排序的有序序列当中,直至所有记录全部排序完毕。void DirectInsertSort(int *list, int len){ int i,j,temp; for(i=1; i<len; i++){ temp=list[i]; for(j=i-1; j>=0 && list[j]>temp; j--){ l

2020-09-09 22:11:35 404

原创 <stdlib.h>中的常用库函数

1.atof原型:double atof( const char *str); 功能:将用字符串表示的浮点数(或整数)转换为double型的数据。(某种程度上来说,atof函数和前面的sscanf函数在功能上有一定的类似)2.malloc原型:void *malloc( size_t size ); 功能:向系统申请开辟size个字节的内存空间。如果内存开辟成功,返回新开辟的内存空间的首地址,否则返回NULL。3.free原型:void free(void *ptr); 功能:将p..

2020-09-09 20:35:45 944

原创 <math.h>中常用的库函数

1.fabs原型:double fabs(double arg); 功能:返回参数arg的绝对值。(fabs也可以计算整型数的绝对值,只需要将返回结果强制转换为整型即可)2.sqrt 原型:double sqrt(double num); 功能:返回参数num的平方根,num不能为负数。 3.pow原型:double pow(double base, double exp); 功能:返回以参数base为底的exp次幂。如果base为0,则exp不能为负数。如果base不为0

2020-09-09 20:29:28 2313 2

原创 <string.h>中常用的库函数

1.strlen原型:unsigned int strlen(char *str); 功能:计算并返回一个字符串的长度。在计算字符串长度时,没有把字符串结束符(\0)计算在内。 strlen只能用于计算字符串的长度,不能用于计算各种类型的数组长度。2.strcmp原型:int strcmp( const char *str1, const char *str2); eg: char *str1, *str2;if(strcmp(str1,str2)<0) ...else

2020-09-09 17:34:45 1004

原创 <stdio.h>中的常用库函数

1.sscanf原型:int sscanf(const char *buffer, const char *format, ...); eg: char buffer[] = "19:11:26";int hh,mm,ss;sscanf(buffer, "%d:%d:%d", &hh, &mm, &ss);printf("%s\n",buffer); 功能:从一个已知字符串(即函数原型中的buffer参数)中读取与制定格式相符的数据。与scanf相似,只不过ss.

2020-09-08 16:50:46 3512

原创 判断输入是否结束(不给定输入个数,oj常见)

cin:while( cin >> x ){}scanf:while( scanf( "%d" , &x ) != EOF){}gets/getchar:while( gets(str) ){}——!容易忽视的地方!!!当用scanf输入完数据后,后面又用gets输入字符串或者用getchar输入字符,如下代码:while(scanf("%d%d",&a,&b)!=EOF){ ... gets(str);

2020-09-07 21:03:27 2555

转载 Java开发面试常见问题总结

1、JAVA的跨平台原理JVA源码被编译会生成字节码文件,通过不同平台上下载的不同版本的JVM,将字节码文件翻译成对应的机器码。注意的是,跨平台的Java程序,不是JVM。JVM是使用C/C++开发的,是编译后的字节码,不能跨平台。2、JAVA中的数据类型及其各自的特点。(1)基本数据类型byte 1字节 数值型 short 2字节 数值型 int 4字节 数值型 long 8字节 数值型 float 4字节 数值型

2020-09-07 11:32:48 715

原创 最大公约数和最小公倍数的求法小结

对于两整数x,y,有x*y=最小公倍数*最大公约数(可以据此来求出其一之后直接得到其二的值)求最大公约数的三种方法1.辗转相除法int gys(int x, int y) { int temp = y; while(x%y!=0) { temp = x%y; x = y; y = temp; } return temp; }2.辗转相减法..

2020-09-04 19:03:24 212

原创 stable_sort()与sort()的用法区别

带有stable的函数可保证相等元素的原本相对次序在排序后保持不变。(stable_sort内部实现是归并排序,稳定,sort是快速排序,不稳定)在刷oj时碰到的,蛮有意思的一个点,需要记住!

2020-09-04 16:34:24 325

原创 数学——求一个整数的回文数

int rever(int n){ int rn; while(n){ rn = rn * 10 + n % 10; n /= 10; } return rn;}

2020-09-02 17:22:51 229

原创 数学——求一个整数的最大质因子

数学——求一个整数的最大质因子做法:除掉所有小于其算术平方根的质因子(注意比如100有2个2),比较最后结果和所记录的最大质因子并返回。int sushu(int n){ int max=0; for(int i=2;i*i<=n;i++){ while(n%i==0){ if(i>max) max=i; n/=i; } } return n

2020-09-02 16:56:36 1022

空空如也

空空如也

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

TA关注的人

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