本文旨在总结一次从头开始训练CNN进行图像分类的完整过程(猫狗大战为例,使用Keras框架),免得经常遗忘.流程包括: 从Kaggle下载猫狗数据集: 利用python的os.shutil库,制作训练集和测试集: 快速开发一个小模型作为基准:(只要效果比随机猜略好即可,通常需要有一点过拟合) 根据基准表现进行改进,比如针对过拟合的图像增强.正则化等. 1 从Kaggle下载猫狗数据集 具体可参考 2 制作数据集 从Kaggle下载的猫狗数据集大概八百多兆,其中训练集包含25000张猫狗图,两类数…
上一节中,我们采用了一个自定义的网络结构,从头开始训练猫狗大战分类器,最终在使用图像增强的方式下得到了82%的验证准确率.但是,想要将深度学习应用于小型图像数据集,通常不会贸然采用复杂网络并且从头开始训练(training from scratch),因为训练代价高,且很难避免过拟合问题.相对的,通常会采用一种更高效的方法--使用预训练网络. 预训练网络的使用通常有两种方式,一种是利用预训练网络简单提取图像的特征,之后可能会利用这些特征进行其他操作(比如和文本信息结合以用于image capti…
卷积神经网络简介 卷积神经网络是多层感知机的变种,由生物学家休博尔和维瑟尔在早期关于猫视觉皮层的研究发展而来.视觉皮层的细胞存在一个复杂的构造,这些细胞对视觉输入空间的子区域非常敏感,我们称之为感受野. 通常神经认知机包含特征提取的采样元和抗变形的卷积元,采样元中涉及两个重要参数,即感受野与阈值参数,前者确定输入连接的数目,后者控制对特征子模式的反应程度.卷积神经网络可以看作神经认知机的推广. 卷积神经网络的特点 卷积神经网络成功的关键在于它采用了局部连接(传统神经网络中每个神经元与图片上每个像…
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器,每台有8个tesla-GPU,然而平时做实验都只使用了其中的一个GPU,实在暴遣天物! 于是想用Spark来把这些GPU都利用起来.听闻Docker是部署环境的神器,于是决定使用docker安装部署Spark集群来训练CNN.配置环境虽然简单,纯苦力活,但配过的人都知道,里面有太多坑了. 本文是博…
keras训练cnn模型时loss为nan 1.首先记下来如何解决这个问题的:由于我代码中 model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) 即损失函数用的是categorical_crossentropy所以,在pycharm中双击shift键,寻找该函数,会出现keras.loss模块中有该函数,进入该函数后, 原函数为: def categorical_crossent…
上一节中,我们利用了预训练的VGG网络卷积基,来简单的提取了图像的特征,并用这些特征作为输入,训练了一个小分类器. 这种方法好处在于简单粗暴,特征提取部分的卷积基不需要训练.但缺点在于,一是别人的模型是针对具体的任务训练的,里面提取到的特征不一定适合自己的任务:二是无法使用图像增强的方法进行端到端的训练. 因此,更为常用的一种方法是预训练模型修剪 + 微调,好处是可以根据自己任务需要,将预训练的网络和自定义网络进行一定的融合:此外还可以使用图像增强的方式进行端到端的训练.仍然以VGG16为例,过…
训练模型时,很多事情一开始都无法预测.比如之前我们为了找出迭代多少轮才能得到最佳验证损失,可能会先迭代100次,迭代完成后画出运行结果,发现在中间就开始过拟合了,于是又重新开始训练. 类似的情况很多,于是我们想要实时监测训练动态,并能根据训练情况及时对模型采取一定的措施.Keras中的回调函数和tf的TensorBoard就是为此而生. Keras回调函数 回调函数(callbacks)是在调用fit时传入模型的一个对象,它在训练过程中的不同时间点都会被模型调用.它可以访问关于模型状态和性能的所…
< Neural Networks Tricks of the Trade.2nd>这本书是收录了1998-2012年在NN上面的一些技巧.原理.算法性文章,对于初学者或者是正在学习NN的来说是很受用的.全书一共有30篇论文,本书期望里面的文章随着时间能成为经典,不过正如bengio(超级大神)说的“the wisdom distilled here should be taken as a guideline, to be tried and challenged, not as a pra…
本文是对卷积神经网络的基础进行介绍,主要内容包含卷积神经网络概念.卷积神经网络结构.卷积神经网络求解.卷积神经网络LeNet-5结构分析.卷积神经网络注意事项. 一.卷积神经网络概念 上世纪60年代.Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念.到80年代.Fukushima在感受野概念的基础之上提出了神经认知机的概念,能够看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成很多子模式(特征),然后进入分层递阶式相连的特征平面进行处理,它试图将视觉系统模型化,使其…
最近几天陆续补充了一些"线性回归"部分内容,这节继续机器学习基础部分,这节主要对CNN的基础进行整理,仅限于基础原理的了解,更复杂的内容和实践放在以后再进行总结. 卷积神经网络的基本原理 前面对全连接神经网络和深度学习进行了简要的介绍,这一节主要对卷积神经网络的基本原理进行学习和总结. 所谓卷积,就是通过一种数学变换的方式来对特征进行提取,通常用于图片识别中. 既然全连接的神经网络可以用于图片识别,那么为什么还要用卷积神经网络呢? 0.使用卷积神经网络的理由 (1)首先来看下面一张图片…