![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机
文章平均质量分 61
recordcode
这个作者很懒,什么都没留下…
展开
-
梯度消失、爆炸产生的原因以及解决方法
梯度消失和梯度爆炸的原因:1.深度网络:神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于1的数而越来越小,最终就会变为0,从而导致层数比较浅的权重没有更新,这就是梯度消失。梯度爆炸就是由于初始化权值过大,前面层会比后面层变化的更快,就会导致权值越来越大,梯度爆炸的现象就发生了。网络层之间的梯度(值大于 1.0/值小于1)重复...原创 2018-08-11 14:46:02 · 1984 阅读 · 0 评论 -
排序算法总结
一.冒泡排序:算法步骤: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 时间复杂度 :o(n^2) 算法稳定性:相...原创 2018-08-11 23:55:40 · 155 阅读 · 0 评论 -
单链表、双链表、循环单链表、循环双链表、哈希表、hashmap
单链表:拥有指向下一节点的指针。查找元素需要从头结点遍历双链表:拥有指向上一节点和下一节点的指针。相对于单链表,在找当前节点的前一节点时比较方便,占用空间比单链表大。单循环链表:单链表中,从一已知结点出发,只能访问到该结点及其后续结点,无法找到该结点之前的其它结点。而在单循环链表中,从任一结点出发都可访问到表中所有结点,这一优点使某些运算在单循环链表上易于实现。双循环链表:可以从任何结...原创 2018-08-13 17:19:02 · 4162 阅读 · 0 评论 -
c++求连通图个数,以及最大连通图节点个数、字节跳动例题并查集的实现
输入:第一行输入两个数n(表示n行),m(表示m列)接下来输入n行m列的矩阵输出:连通图个数 最大连通图节点数例子:输入:10 100 0 0 0 0 0 0 0 0 00 0 0 1 1 0 1 0 0 00 1 0 0 0 0 0 1 0 11 0 0 0 0 0 0 0 1 10 0 0 1 1 1 0 0 0 10 0 0 0 0 0 1 0 1 10 1 1...原创 2018-08-26 16:48:40 · 4709 阅读 · 4 评论 -
三柱汉诺塔c++实现
小的盘子必须在大的盘子的上面void hannoi(int n, char a, char b, char c ){ if (n == 1) { res.push_back(to_string(n)+" from " +a+" to "+c); } else { hannoi(n - 1, a, c, b); ...原创 2018-09-17 11:38:53 · 321 阅读 · 0 评论 -
c++接口和抽象类
其实对抽象类与接口的区别一直是搞不太清楚,最近正在学习《设计模式》,期间用到了很多c++多态的知识。这是才恍然发现,是应该整理下这方面的知识了。但在翻阅书本、上网查阅资料之际,发现有篇文章总结的不错。于是,转载(博主勿怪)并稍作修改如下:抽象类:抽象类是特殊的类,只是不能被实例化(将定义了一个或多个纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类...转载 2018-09-10 16:26:16 · 1055 阅读 · 0 评论 -
sizeof和strlen、32位和64位系统各类型的长度
sizeof:申请了多少内存空间或者,例如char a[20],sizeof(a)=20。若为char a[],他的大小应该为使用了多少大小就为多少。strlen计算字符数组的长度时,是以找到0或者\0作为终止。若末尾没有0或者\0作为结束,则不会计算出正确的字符数组的长度,会一直读到下一个地址为0的长度。0或者\0不计算在内。字符串会在末尾自动补上\0作为结束,字符数组不会。因此si...原创 2018-09-18 09:55:56 · 1106 阅读 · 0 评论 -
二叉树、二叉排序树、平衡二叉树、红黑树、B树、B+树、哈弗曼树和哈夫曼编码
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”。一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。具有n个节点的完全二叉树的深度为log2(n+1)。深度为k的完全二叉树,至少有2^(k-1)个节点,至多有2^k-1个节点。遍历方式:先序遍历(根左...原创 2018-09-18 17:49:54 · 2104 阅读 · 0 评论 -
caffe finetune两种修改网络结构prototxt方法
第一种方法:将原来的prototxt中所有的fc8改为fc8-re。(若希望修改层的学习速度比其他层更快一点,可以将lr_mult改为原来的10倍或者其他倍数)第二种方法:只修改name,如下例子所示: layer { name: "fc8-re" #原来为"fc8" type: "InnerProduct" bottom: "fc7" t...原创 2018-11-27 19:00:48 · 854 阅读 · 1 评论 -
C++中的vector、list和vector的区别、set的用法与区别以及迭代器iterator
vector封装数组,list封装了链表,map和set封装了二叉树1.vector初始化:vector<int> test vector<int> test(n,0) (n不用初始化,可cin输入或者读入文件) 初始化长度为n,元素值全部为0。sort: sort(test.begin(),test.end()) //test中的元素按...原创 2018-07-24 16:35:58 · 1619 阅读 · 0 评论 -
内联函数、虚函数、构造函数、析构函数、纯虚函数、函数继承、类和对象的权限总结
内联函数:一般函数进行调用时要将程序执行权转到被调用函数中,然后在返回调用他的函数中;而内敛函数在调用时,是将调用表达式用内联函数体来替换。示例如下: 1.在类内部声明内联函数叫做 隐式内联函数。如: class display { int t; ...原创 2018-07-06 19:01:14 · 510 阅读 · 0 评论 -
机器学习正则化
1. The Problem of Overfitting1还是来看预测房价的这个例子,我们先对该数据做线性回归,也就是左边第一张图。如果这么做,我们可以获得拟合数据的这样一条直线,但是,实际上这并不是一个很好的模型。我们看看这些数据,很明显,随着房子面积增大,住房价格的变化趋于稳定或者说越往右越平缓。因此线性回归并没有很好拟合训练数据。我们把此类情况称为欠转载 2017-09-26 11:06:12 · 198 阅读 · 0 评论 -
用cmd删除大文件夹
在cmd中输入:rd /s /q 文件夹路径。rd表示删除指定目录,/s表示删除指定目录下的所有子目录和文件,/q表示安静模式,在删除子目录时不需要确认直接删除。不经过回收站。原创 2017-09-11 12:44:02 · 626 阅读 · 0 评论 -
c++ 遍历文件夹函数、字符分割函数、判断文件夹是否存在
遍历文件夹函数(用到的头文件:#include<iostream>)void getFilesAll(string path, vector<string>& files) {//文件句柄intptr_t hFile = 0;//文件信息struct _finddata_t fileinfo;string p;if ((hFile = _findfi...原创 2017-09-11 23:22:46 · 336 阅读 · 0 评论 -
python路径中\/问题
python从文本中读入文本文件:\和/均可,\不会转义python从代码中给定的路径读取:\会转义,需要\\通过其他函数调用os.listdir,这种生成路径的代码,python读取到的是\\,写在文本文件中则为\原创 2017-09-30 11:26:29 · 2829 阅读 · 1 评论 -
神经网络中的过拟合的原因及解决方法、泛化能力、L2正则化
过拟合:训练好的神经网络对训练数据以及验证数据拟合的很好,accuracy很高,loss很低,但是在测试数据上效果很差,即出现了过拟合现象。过拟合产生的原因:(1)数据集有噪声(2)训练数据不足(3)训练模型过度导致模型非常复杂解决方法:(1)降低模型复杂度(缩小宽度和减小深度)(2)数据集扩增(平移,旋转,缩放,剪切,添加噪音)(3)正则化。(4)加入drou...原创 2017-10-10 10:52:05 · 8437 阅读 · 0 评论 -
c++中Mat型的一些问题
CV_8U - 8-bit unsigned integers • CV_8S - 8-bit signed integers• CV_16U - 16-bit unsigned integers• CV_16S - 16-bit signed integers • CV_32S - 32-bit signed integers• CV_32F - 32-bit floating-point nu...原创 2018-04-02 19:59:32 · 2052 阅读 · 0 评论 -
c++中的输入问题
自动忽略空格和换行符char a[50];string cc;scanf("%s",c); 连续输入:while(scanf("%s",c)!=EOF)cin>>cc; cin>>a;scanf("%s", &cc); //可以读取到键入的字符串cout << cc; //输出为空printf("%原创 2018-04-06 10:38:28 · 534 阅读 · 0 评论 -
c++中结构体、联合、内存对齐
struct { short a; char b; float c; }cs; sizeof(cs)=8首先一个第一个变量在0偏移处。短整型占两个字节,现在就到了2偏移处,一个char占一个字节,2是1的倍数,直接加在后面,现在是3偏移处,而float是4个字节,4不是3的倍数,需要再开辟一个字节,到4偏移处,然后加上4,所以结构体大小为8个字节,最后还要考...原创 2018-07-18 17:51:31 · 271 阅读 · 0 评论 -
堆和栈
栈:通常存放局部变量、函数参数等,编译器自动分配内存,自动清除。向下、向低地址方向增长。是连续的内存区。变量引用容易逃逸。堆:new分配的内存块,程序员释放(delet),存放的是实体(对象)。向上、向高地址方向增长。不连续的内存区(系统用链表存储空间内存地址),容易产生memory leak。大量的new/delet会造成内存空间的不连续。 存放在栈中的情况:int n; ...原创 2018-07-06 11:12:19 · 151 阅读 · 0 评论 -
线性回归和逻辑回归
线性回归:特征和结果满足线性,不大于一次方。逻辑回归:逻辑回归的模型 是一个非线性模型,sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。可以说,逻辑回归,都是以线性回归为理论支持的。只不过,线性模型,无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。原创 2017-09-26 11:09:32 · 543 阅读 · 0 评论