1.经典的CNN LeNet-5 1998的CNN鼻祖 以前用的sigmoid和tanh 下图给的是relu和softmax AlexNet ImageNet2012的冠军 VGG-16 ImageNet2014的冠军和亚军 2.残差神经网络 imageNet2015冠军和2016的亚军 2017的冠军SENet也算是res的变种 3.GoogleNet即inceptionNet 主要贡献在1x1卷积的channel缩放上 然后用了很多same conv组成了inception结构 有V1V2V…
开源框架与迁移 上面介绍了一些已经取得很好成绩的CNN框架,我们可以直接从GitHub上下载这些神经网络的结构和已经在ImageNet等数据集上训练好的权重超参数. 在应用于我们自己的数据时. 1.如果我们的数据集很小,我们可以采用对原框架和权重都保持不变,只更改最后的output层实现迁移. 2.如果我们的数据集大小中等,可以尝试冻结原框架的前面多层,对其后的层数进行更改. 3.如果我们的数据集很大,可以在原架构上尝试新的训练,不采用预训练的权重,还可以自行更改模型,做更多的尝试. CNN中的…
所谓Mini-batch梯度下降法就是划分训练集和测试集为等分的数个子集,比如原来有500W个样本,将其划分为5000个baby batch,每个子集中有1000个样本,然后每次对一个mini-batch进行梯度下降 mini-batch大小 = m: 极限情况下,当mini-batch的单个子集样本数量和原集合大小一致都为m时,也就是说对原样本只划分一个子集,这意味着没有划分,此时的梯度下降法为原始的Batch梯度下降 batch方法意味着每次迭代对大量的数据进行处理,这意味着在进行深度神经网…
参数重要性: 第一阶:α即learning rate 第二阶:momentum中的β,hidden units的数量,mini-batch的大小 第三阶:hidden layers的数量,learning rate decay的参数 参数选择的方式: 一.完全在一定范围内进行随机 二.尝试完毕上述随机参数后,以粗糙到精确的思路,缩小随机范围并重复第一步 python中参数的具体实现: 对于学习率α而言:0 < α < 1 所以打个比方如果测试 0.0001 ≤ α ≤ 1显然这是一种指数分布,…
首先感谢吴恩达老师的免费公开课,以下图片均来自于Andrew Ng的公开课 指数加权平均法 在统计学中被称为指数加权移动平均法,来看下面一个例子: 这是伦敦在一些天数中的气温分布图 Vt = βVt-1 + (1 - β)θt  β指的是加权系数 0<β<1 θt 指的是当前时刻的温度 当β=0.9的时候 1/1-β = 10 所以看到上图的红线其实就是考虑了10天之内的平均气温,其拟合度较好 当β=0.98的时候 1/1-β = 50 所以上图中的绿线是考虑了50天之内的平均气温,于是这种平…
Python之路,Day19 - CMDB.CMDB.CMDB   本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OG…
对于深度卷积神经网络而言,准确度和计算成本往往难以得兼,研究界也一直在探索通过模型压缩或设计新型高效架构来解决这一问题.印度理工学院坎普尔分校的一篇 CVPR 论文则给出了一个新的思路——使用异构的卷积过滤器:实验表明这种方法能在保证准确度的同时显著降低计算成本. 选自arXiv,作者:Pravedra Singh等,机器之心编译,参与:熊猫. 论文:https://arxiv.org/abs/1903.04120 摘要:我们提出了一种全新的深度学习架构,其中的卷积运算利用了异构核.相比于标准的…
本次作业:Andrew Ng的CNN的搭建卷积神经网络模型以及应用(1&2)作业目录参考这位博主的整理:https://blog.csdn.net/u013733326/article/details/79827273 今天要实现的是识别手势姿势表达的数字 我的Git传送门:https://github.com/VVV-LHY/deeplearning.ai/tree/master/CNN/RecognizeGestureNum 本来是接着day17用了numpy编了一个卷积层和池化层的前向传播…
来看上图的简单CNN: 从39x39x3的原始图像 不填充且步长为1的情况下经过3x3的10个filter卷积后 得到了 37x37x10的数据 不填充且步长为2的情况下经过5x5的20个filter卷积后 得到了 17x17x20的数据 不填充且步长为2的情况下经过5x5的40个filter卷积后 得到了 7x7x40的最终结果 将7x7x40的卷积层全部展开作为输入特征,建立一个输入层单元数为1960的神经网络即可 卷积神经网络常见的结构: 1.Conv卷积层如上图所见 2.Pool池化层…
Error | 误差 Bias | 偏差 – 衡量准确性 Variance | 方差 – 衡量稳定性 首先我们通常在实际操作中会直接用错误率或者与之对应的准确率来衡量一个模型的好坏,但是更加准确的做法是误差衡量时综合考虑偏差和方差的共同作用. 所谓偏差Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度.Variance反映的是模型每一次输出结果与模型输出期望值之间的误差,即模型的稳定性. 举个例子,对于一个二分类问题,比如测试图片是不是猫,是猫的话就是1,不是猫就是2. 现…
很多刚从windows系统投靠到ubuntu的机油,在听音乐时不是很舒心.毕竟ubuntu软件中心的很多影音软件都是国外的朋友编写的,所以很多时候国内的朋友用着很不舒服.今天给大家推荐的是国内开发者针对国内用户开发的影音和音乐播放软件. 在网上找到的教程奉上 第一步: 打开终端(怎么打开终端不用解释了吧,不懂的话百度)sudo gedit /etc/apt/sources.list在文件最后面添加deb http://mirror.csclub.uwaterloo.ca/debian-multi…
一直在寻找Linux下的截图软件,终于发现了Deepin ScreenShot,其功能齐全,界面美观,唯一的缺点需要自己配置快捷键(后面会讲). 安装 直接在Ubuntu商店搜索“深度截图”,点击“安装”即可. 配置快捷键 打开“设置”,选择“设备”,再选择“键盘”,滑到最底部选择“添加+”. 我配置的是"Ctrl+Alt+A"(这样就跟本机QQ的截图快捷键统一了/). (后续 才发现,系统自带截图,为什么之前一直没发现,,,蒟蒻落泪 设置-->设备-->键盘,也能自己定义…
简介:如何在ubuntu 14.04 下安装caffe深度学习框架. 注:安装caffe时一定要保持网络状态好,不然会遇到很多麻烦.例如下载不了,各种报错. 一.安装依赖包 $ sudo apt-get install git$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler $ sudo apt-get ins…
.目前使用CPU即可,先不需要显卡配置 .使用pip3 安装深度学习框架 .要先安装pip3 #sudo apt install python3-pip https://blog.csdn.net/bjzhaoxiao/article/details/81270368 https://blog.csdn.net/fengzhen8023/article/details/829277764.安装tensorflow #sudo pip3 install tensorflow5.安装pytorch…
首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273 本来想要进deeplearning.ai的官网看作业的,因为我是在网易云上面看的课所以没有作业,然而GFW把我关了,我现在用的新机器代理还没设置好.照例来一句GTMD GFW! 然后本来想把jupyter notebook直接上传到博客,但是转换成html不支持,转成markdown丢了好多东西,所…
因为要上手深度学习的原因,购置了一台RTX2080TI+ubuntu18.04的机器 例行两条命令 sudo apt-get update sudo apt-get upgrade 开启巨坑第一天,以前只在虚拟机上用过ubuntu,今天开箱之后因为用户名和主机名的问题我重装了ubuntu,问题一,参考了网上各种创建用户和主机并删除以前用户组的方法,改了好多系统文件结果gg,卡黑屏,没办法只能重装. 重装后遇见的问题二,nvidia驱动问题,因为N卡厂商的闭源行为和linux闹得不是很愉快,因此以…
Ubuntu系统 1.备份 在服务器上整个装系统之前,需要做好一个工作,也就是相关重要数据的备份,这里主要是将固态中的数据备份到机械硬盘或移动硬盘里,可能在备份的过程中会遇到无法写入的问题,是因为文件夹的属性可能只读等原因,所以这里可能会用到改变所有者权限的命令: sudo chmod -R 777 文件名 文件或目录的权限分为三种:只读(r).只写(w).可执行(x).用户也分为三种:所有者.组.其他用户. 上述命令中的777分别指的是这三种用户,每一位里的7是指二进制的111,也就是赋予了所…
网上对np.pad的解释很玄乎,举的例子也不够直观,看了更晕了,对于CNN的填充请参考下面就够用了: np.pad的参数依次是目标数组,多增加的维数可以理解为一张图的前后左右增加几圈,设置为'constant'之后为连续填充相同的值,默认为(0, 0),可以设置为constant_values = (x, y)…
以上是一个识别手写数字的示例 在这个示例中使用了两个卷积-池化层,三个全连接层和最后的softmax输出层 一般而言,CNN的构成就是由数个卷积层紧跟池化层再加上数个全连接层和输出层来构建网络. 在上述网络中可以看到一个有关参数的现象如下图: 随着卷积网络层数的增加,可以看到有关图片数据的height和weight都在减小,而信道channel在增加. 伴随着这种操作,激活层的大小也在减小.但是卷积层需要的参数量在增多(f x f + 1) x c,f为filter的大小,c为channel的数…
感谢吴恩达老师的公开课,以下图片均来自于吴恩达老师的公开课课件 为什么要进行卷积操作? 我们通过前几天的实验已经做了64*64大小的猫图片的识别. 在普通的神经网络上我们在输入层上输入的数据X的维数为(64*64*3, m) 假设第二层的节点数为1000,在全连接网络下,则W的维数为(1000, 64*64*3). 这看起来是可以操作的,但是实际情况下的图片是更高清的,比如现在的手机已经动辄2400万像素. 在这种情况下让内存来处理很多W权重矩阵是不现实的,因此卷积神经网络就成为了计算机视觉领域…
在深度学习领域中,最强力的理念之一就是可以将神经网络学习的一种知识应用到另一个独立的任务中. 看上面的例子,首先我们有一个已经完成训练的神经网络,其目标是图像识别,我们有了绿色的1000000张图片并训练了上面的网络. 在完成图像识别后,我们希望将我们的模型用于放射诊断任务,这就是一种迁移. 我们的做法是,把以及训练好的网络的输出层及其权重都删除掉,然后重新随机权重给最后一层,并且让它在放射诊断数据上进行训练. 在使用源数据进行训练的时候,我们把这一过程称为预训练pre-training,其目标…
快速搭建系统并进行迭代 1.建立dev/test set,并确定你的目标 2.快速建立初始化的系统 3.使用前面提到的bias/variance分析和错误分析来进行模型优化和迭代 针对以上的过程,Andrew Ng建议在搭建第一个系统的时候遵循quick and dirty的思路 不要过度复杂化初始系统,显然地无论如何都要进行多次迭代的情况下,如果过度复杂化了初始系统,也许会提前走向偏移正确道路的方向 在不同的划分上进行训练和测试 深度学习对于train数据有很大的胃口,因此越来越多的团队倾向于…
总结一下就是在提升偏差的方面(即贝叶斯最优误差和训练误差的差距) 1.尝试更大更深的网络 2.加入优化算法比如前面提过的momentum.RMSprop.Adam等 3.使用别的神经网络架构比如RNN/CNN等等 在提升方差的方面(即训练误差和测试误差的差距) 1.加大训练集的样本数量 2.正则化操作,如L2.dropout.Data Augmentatio数据扩增.early stop等 3.使用别的神经网络架构比如RNN/CNN等等…
结合吴恩达老师前面的讲解,可以得出一个结论: 在机器学习的早期阶段,传统的机器学习算法在没有赶超人类能力的时候,很难比较这些经典算法的好坏.也许在不同的数据场景下,不同的ML算法有着不同的表现. 但是在接近人类表现,甚至超越人类表现逼近bayes optimal error的时候,深度学习就展现了其优越的性能和巨大的潜力,同样如果把横轴time换做数据量,其实可以得出一样的结论,因为时间的发展也是数据规模的发展.…
 train/dev/test的划分 我们在前面的博文中已经提到了train/dev/test的相关做法.比如不能将dev和test混为一谈.同时要保证数据集的同分布等. 现在在train/dev/test的划分中,我们依然要旧事重提关于same distribution即同分布的概念. 假设我们现在有一种商品来自8个国家,如果我们将四个国家作为train和dev,将另外四个国家作为test,这种做法显然是错的. 因为我们建立的模型的靶点是为了逼近前四个国家的结果,但是在真正测试的时候我们移动了…
Softmax 用于在深度学习中处理多分类(C > 2)问题,分类器最后的输出单元需要Softmax 函数进行数值处理.关于Softmax 函数的定义如下所示: 其中vi表示 vi = z[L] = w[L]a[L-1]+b[L] t = e[Vi] 举个例子: 这样就对应着最终分类的四个类别的概率 与softmax对应的就是hardmax 对应上面的例子就是形成一个[1,0,0,0]T的结果,即在最大的元素位置填1,其他的都填0 另外如果将softmax局限在C=2的条件下,事实上就变成了了一…
Batch Norm的意义:Covariate shift的问题 在传统的机器学习中,我们通常会认为source domain和target domain的分布是一致的,也就是说,训练数据和测试数据是满足相同分布的.这是通过训练数据获得的模型能够在测试集上获得好的效果的一个基本保障. Convariate Shift是指训练集的样本数据和目标样本集分布不一致时,训练得到的模型无法很好的Generalization.它是分布不一致假设之下的一个分支问题,也就是指Sorce Domain和Targe…
感谢两位老师做的免费公开课: 第一个是由吴恩达老师放在网易云课堂的神经网络和深度学习,比较偏理论,使用numpy包深入浅出的介绍了向量版神经网络的处理方式,当然由于视频有点老,虽然理论很好但是工具有点滞后,这是英文授课但是有全部中文字幕 https://mooc.study.163.com/learn/2001281002?tid=2001392029#/learn/announce 第二个是由莫烦老师做的pytorch公开课,放在了他的个人主页上,工具很先进,理论方面草草带过,所以推荐先看吴恩…
一:sougou输入法安装 详情参考:https://blog.csdn.net/xin17863935225/article/details/82285177 注意切换成fcitx架构 因为linux的中文输入都是基于小企鹅架构的 二:cuda和cudnn安装 参考了:https://blog.csdn.net/Sebastien23/article/details/80554837 忽略其中gcc降级的部分,因为我使用了最新的RTX2080TI它的驱动支持新的gcc,另外关于几种不同cuda…
志不坚者智不达. 主要内容:Django分页.自定义simpletag.权限管理 Django分页 Django自带了一个分页功能,使用起来很方便.官方文档 先来看一下效果图: 后台代码: def customers(request): customers_set = models.Customer.objects.all() # 生成分页实例,第一个参数为query_set对象,第二个参数为每页显示多少条数据 paginator = Paginator(customers_set, 1) #…