CNN训练中的技巧】的更多相关文章

转自: http://weibo.com/p/1001603816330729006673 说明:这个翻译应该是来自原文:http://yyue.blogspot.hk/2015/01/a-brief-overview-of-deep-learning.html 翻译网上的哈,我觉得有很大一部分从没看到过,所以就翻译了下,如有不对的地方,欢迎指正:   1:准备数据:务必保证有大量.高质量并且带有干净标签的数据,没有如此的数据,学习是不可能的 2:预处理:这个不多说,就是0均值和1方差化 3:m…
关于数据集 Cifar-10是由Hinton的两个大弟子Alex Krizhevsky.Ilya Sutskever收集的一个用于普适物体识别的数据集.Cifar是加拿大政府牵头投资的一个先进科学项目研究所. 说白了,就是看你穷的没钱搞研究,就施舍给你.Hinton.Bengio和他的学生在2004年拿到了Cifar投资的少量资金,建立了神经计算和自适应感知项目. 这个项目结集了不少计算机科学家.生物学家.电气工程师.神经科学家.物理学家.心理学家,加速推动了DL的进程.从这个阵容来看,DL已经…
神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 Tricks!这是一个让人听了充满神秘和好奇的词.对于我们这些所谓的尝试应用机器学习技术解决某些问题的人,更是如此.曾记得,我们绞尽脑汁,搓手顿足,大喊“为什么我跑的模型不work?”,“为什么我实现的效果那么差?”,“为什么我复现的结果没有他论文里面说的那么好?”.有人会和你说“你不懂调参!里面有…
原文:https://blog.csdn.net/aimreant/article/details/53145063 思考卷积神经网络(CNN)中各种意义 只是知道CNN是不够,我们需要对其进行解剖,继而分析不同部件存在的意义 CNN的目的 简单来说,CNN的目的是以一定的模型对事物进行特征提取,而后根据特征对该事物进行分类.识别.预测或决策等.在这个过程里,最重要的步骤在于特征提取,即如何提取到能最大程度区分事物的特征.如果提取的特征无法将不同的事物进行划分,那么该特征提取步骤将毫无意义.而实…
感谢中国人民大学的胡鹤老师,人工智能课程讲的很有深度,与时俱进 由于深度神经网络(DNN)层数很多,每次训练都是逐层由后至前传递.传递项<1,梯度可能变得非常小趋于0,以此来训练网络几乎不会有什么变化,即vanishing gradients problem:或者>1梯度非常大,以此修正网络会不断震荡,无法形成一个收敛网络.因而DNN的训练中可以形成很多tricks.. 1.初始化权重 起初采用正态分布随机化初始权重,会使得原本单位的variance逐渐变得非常大.例如下图的sigmoid函数…
自然语言处理的CNN模型中几种常见的池化方法 本文是在[1]的基础上进行的二次归纳. 0x00 池化(pooling)的作用   首先,回顾一下NLP中基本的CNN模型的卷积和池化的大致原理[2].filter(特征抽取器,卷积核,CV上称之为滤波器)在一个窗口(text region)上可以抽取出一个特征值,filter在整个text上滑动,将抽取出一系列特征值组成一个特征向量.这就是卷积层抽取文本特征的过程.模型中的每一个filter都如此操作,形成了不同的特征向量.   pooling层则…
在我工作中经常会遇到有人吐槽Xcode中的interface builder(以下简称IB)不好用的开发者.在我看来,IB是一个非常棒的可视化开发工具,可以非常快捷的设置UI控件的大部分常用属性.下面就说两个IB中的技巧: 1.快速显示元素相对位置这个技巧由@余书懿在新浪微博分享.在IB中,选中一个control A,然后按住alt键,鼠标指向B,就显示A和B的相对位置关系,指向父view也行. 2.给页面添加水平.垂直辅助线这个技巧是由我一个好朋友,同时也是陌陌的产品经理发现的.IB中是可以添…
IDL 中相关技巧 1. 注释:分号“;”表示注释内容的开始. 2. 续行:最后一个字符是“$”,那么本行将紧接着下一行,续行标志.(换行符,$+回车) 3. 中文编码:窗口>首选项>常规>工作空间>文本文件编码 [GB2312]中文编码 4. 工作空间:文件>切换工作空间[也可以通过复制文件夹,然后在左侧粘贴即可] 5. 大小写:窗口>首选项>IDL>格式器 === 修改大小写,通过 Ctrl+Shift+F 变大写(改变成默认格式)=== 通过9的方法也…
一文读懂神经网络训练中的Batch Size,Epoch,Iteration 作为在各种神经网络训练时都无法避免的几个名词,本文将全面解析他们的含义和关系. 1. Batch Size 释义:批大小,即单次训练使用的样本数 为什么需要有 Batch_Size :batch size 的正确选择是为了在内存效率和内存容量之间寻找最佳平衡. Batch size调参经验总结: 相对于正常数据集,如果Batch_Size过小,训练数据就会非常难收敛,从而导致underfitting. 增大Batch_…
一.myeclipse自带包和自己部署的包冲突解决问题方案 原来的依赖设置: 修改后的配置: 二.取消Myeclipse的自动文件验证来增加myeclipse速度 1.Windows –> Perferences –>Myeclipse –> Validation,保留manual(手动)部分,build下只留"classpath dependency Validator" . 2.手动验证: 右键文件 -> Myeclipse -> Run Valida…
1.编译器断言 技巧大致跟后面的一样,都是利用偏特化,但是在C++ 0X里面已经有static_assert,所以感觉这东西也没什么用处了,更多的只是开阔眼界 2.偏特化 就是专门对一个类型去进行特殊的处理,毕竟template会给生成所有的类型相同的操作,但是有时候我们需要对特定的几个类型去处理,于是就有了特化和偏特化 3.局部类 一直被忽略的C++的语法,可以直接在类或者函数里面定义类,不过一直被忽视就对了,感觉这个还是挺有意思的 4.常数映射为型别: template <int v> s…
1.NSCalendar用法 -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit; NSDateC…
1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀.  2.常用技巧 2.1 通过Alt+F8查看变量在当前断点的当前值 2.2 使用Live Template创建代码模板 2.3 粘贴 历史 复制 快捷键 Ctrl+Shift+V,可以显示文本复制的历史记录. 修改复制历史记录数量,执行 Setting-Editor,修改“Maximum number of contents to keep in…
分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScript都将他们归结为数字. <script type="text/javascript"> typeof 10; typeof 10.1; typeof -10.02; </script> 结果为: 事实上,JavaScript中所有的数字都是双精度浮点数.所以要对它们…
1. tf.layers.conv2d(input, filter, kernel_size, stride, padding) # 进行卷积操作 参数说明:input输入数据, filter特征图的个数,kernel_size卷积核的大小,stride步长,padding是否补零 2. tf.layers.conv2d_transpose(input, filter, kernel_size, stride, padding) # 进行反卷积操作 参数说明:input输入数据, filter特…
1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀.  2.常用技巧 2.1 通过Alt+F8查看变量在当前断点的当前值 2.2 使用Live Template创建代码模板 2.3 粘贴 历史 复制 快捷键 Ctrl+Shift+V,可以显示文本复制的历史记录. 修改复制历史记录数量,执行 Setting-Editor,修改“Maximum number of contents to keep in…
之前训练模型,认为网络图构建完成,Loss肯定是呈现下降的,就没有太留心,知识关注F1的变化情况,找到最优的F1训练就停止了,认为模型就ok. 但实际中发现,我们要时刻关注网络的损失变化情况,batch size过小(6,8)都会导致模型不收敛,此时你就看不到损失的变化,只能根据F1优劣判断模型. 那么,我们可以将batc size调的大一些(128),可以观察到损失是平滑降低的,F1的性能也在慢慢变好.这就是通常大家用128的原因.关于迭代停止条件, 一般选20个epochs的迭代,每一次迭代…
TensorFlow实战中AlexNet卷积神经网络的训练 01 出错 TypeError: as_default() missing 1 required positional argument: 'self' 经过百度.谷歌的双重查找,没找到就具体原因.后面去TensorFlow官方文档中发现,tf.Graph的用法如下: g = tf.Graph() with g.as_default(): # Define operations and tensors in `g`. c = tf.co…
本文主要介绍开发中的一些实用技巧 #pragma mark - 代码控制Home按键 [[UIApplication sharedApplication] performSelector:@selector(suspend)]; // 私有API #pragma mark - 获取UIWebView的高度 - (void)webViewDidFinishLoad:(UIWebView *)webView{ CGFloat height = [[webView stringByEvaluating…
预训练 先在某个任务(训练集A或者B)进行预先训练,即先在这个任务(训练集A或者B)学习网络参数,然后存起来以备后用.当我们在面临第三个任务时,网络可以采取相同的结构,在较浅的几层,网络参数可以直接加载训练集A或者B训练好的参数,其他高层仍然随机初始化.底层参数有两种方式:frozen,即预训练的参数固定不变,fine-tuning,即根据现在的任务调整预训练的参数. 优势: 1.当前任务数据量少,难以训练更多的网络参数,可以加载预训练的模型,然后根据当前的任务对参数进行fine-tuning,…
神经网络中的不变性 原文:https://blog.csdn.net/voxel_grid/article/details/79275637     个人认为cnn中conv层对应的是“等变性”(Equivariance),由于conv层的卷积核对于特定的特征才会有较大激活值,所以不论 上一层特征图谱(feature map)中的某一特征平移到何处,卷积核都会找到该特征并在此处呈现较大的激活值.这应该就是“等变性” 这种“等变性”是由conv层的 1局部连接 2权值共享 两个特性得到的. 所谓的…
针对解压版本5.7.16(博主使用的这个版本.在某些低版本中部分命令失效) 一.初始化data目录(解压版解压后没有data目录) mysqld --initialize-insecure --user=mysql 二.修改root密码,连接数据库后use mysql 1.update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';新版Mysql已经…
1:标签不要忘记带点 2:div是否成对的出现. 3.body 前面不能加点 4.在写css时记住一定要带上class的命名这样就不会出现重复的 5.出现文字的时候下面有下划线或虚线的时候,用padding撑开距离   图片距离变框也是用padding 6.当出现有padding时要记住用width减去padding的值  padding是边与边的距离 当出现高度是也是要用light减去padding值   padding也可以用到在四边的距离 7.网页最好写成块的形式  也就是一对div中写一…
1.使用jstree插件时,操作成功直接刷新jstree 该页面(index.jsp)本身使用iframe框架jstree在leftFrame,操作页(add_input.jsp.add_success.jsp等)在rightFrame. index.jsp中 function refresh(){ $("#partyTree").jstree("refresh", "#partyTree"); } add_success.jsp中 $(func…
==,===运算符和强制转换 先看个表达式: "1.0e0" == { valueOf: function() { return true; } }; 是的,这个结果可能有点出乎意料: true.对于这个表达式我们能够注意到:它们的类型是不一样的.原因是在运算的时候进行了强制转换.在比较之前,它们被转换成了数字.字符串”1.0e0“被解析成数字1,而匿名对象通过调用自身的valueOf方法得到true,然后再转换成数字1.我们需要知道的是: 1.如果表达式两边的数据类型不一致,==运算…
卷积运算本质上就是在滤波器和输入数据的局部区域间做点积,最直观明了的方法就是用滑窗的方式,c++简单实现如下: 输入:imput[IC][IH][IW] IC = input.channels IH = input.height IW = input.width 卷积核: kernel[KC1][KC2][KH][KW] KC1 = OC KC2 = IC KH = kernel.height KW = kernel.width 输出:output[OC][OH][OW] OC = output…
杂记 zip的用法 对于 a = [1,2,3] b = [3,2,1] 若要同时遍历 for x, y in zip(a, b): pass zip(a, b)=> [(1,2,3),(3,2,1)] 数组复制,以及排序的细节 a = [1,2,3] b = a a.sort() b会随着a一起变化 可以令b = a[:] 就ok了 a.sort()a的内容会改变b = sorted(a)用着个Python的内置函数,可以不改变原数组的顺序 自定义排序 sorted(people, key=l…
slim.arg_scope函数说明如下: Stores the default arguments for the given set of list_ops. For usage, please see examples at top of the file. Args: list_ops_or_scope: List or tuple of operations to set argument scope for or a dictionary containing the current…
参考链接:http://blog.csdn.net/lanchunhui/article/details/62242568 在代码中添加了tensorboard可视化代码后,原程序运行报错,以上链接方法亲测可用.…
1.训练太慢 用nimibatch代替fullbatch https://www.cnblogs.com/guoyaohua/p/8724433.html 2.过拟合 最直接的解决过拟合问题的办法是增加训练数据量 使用dropout层 3.损失率波动不下降,欠拟合(梯度消失) Batch Normalization 4.训练开始时后出现损失函数值为nan(梯度爆炸) 学习率太大…