[DeepLearning]keras初体验之病斑分类

本文介绍了作者从caffe转向keras进行深度学习实验的原因,并详细探讨了keras框架下的卷积神经网络(CNN)在病斑分类任务中的应用。通过对CNN各层输出的分析,讨论了卷积层、池化层的作用,以及参数调整的影响。作者还分享了特征提取的代码,并提出结合传统方法如SVM可能提高效果的观点。
摘要由CSDN通过智能技术生成

0.序

之前一直在使用caffe在进行深度学习的实验,我的上一篇深度学习文章就是用caffe来检测病斑,但是在使用的过程中发现caffe虽然在速度上要快很多,但是在数据准备上有些复杂,调整网络结构和参数上也比较麻烦。所以我开始尝试其他的框架,比如theano和keras,而我目前的实验内容是用深度学习对病斑进行分类,这次的文章是对实验的一小部分,主要是对卷积神经网络CNN中各层输出结果的分析。

1.keras简介

Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,是一个高度模块化的神经网络库,支持GPU和CPU。使用文档在这:http://keras.io/,这个框架火起来已经有很长一段时间了,目前使用keras的人非常多,使用上的问题可以到github提issue:https://github.com/fchollet/keras

谈一下使用上的体会,keras是基于theano写的,theano的操作相对keras用更细节更底层一些,而keras等于是用theano做了一些网络层和操作上的集成。因为是使用Python写的,代码写起来也非常快,另外在官网上有非常详细的例子。需要注意的是,keras一直在更新,所以别人博客以前的代码可能会不适用了,因为会有接口上的变化。

2.网络模型

2.1 模型分析
我在这里直接采用的是cifar10中使用到的CNN卷积神经网络,该网络结构图如下图所示:
这里写图片描述

关于cifar10的一些研究结果,目前在这个网站上总结有许多方法(http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html),同时也有其他的一些数据集的研究结果。
在这个网络中,卷积层是对图像进行卷积,可以理解为对图像提取特征,其中滤波器的数量越多,找到合适特征的概率也会大一些,当然数量合适就可以,太大不仅仅效果没有提高,还会占用过多的内存。
另外pooling层是做池化操作,从信号处理的角度可以理解为对图像进行下采样,也就是过滤出更有用的特征。具体可以看下别人的博客(http://blog.csdn.net/danieljianfeng/article/details/42433475)。当然严格来说,在这里pooling层可以与上一层的卷积层一起,认为是整个网络的一层

2.2 网络模型代码

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值