2016.07.05 
致读者:本文写于keras开发初期,目前keras已经迭代到1.0版本,很多API都发生了较大的变化,所以本文的粘贴的一些代码可能已经过时,在我的github上有更新后的代码,读者需要的话可以看github上的代码:https://github.com/wepe/MachineLearning

更多进阶的使用方法,我会在gist上持续更新:https://gist.github.com/wepe/a05ad572dca002046de443061909ff7a

上一篇文章总结了Keras的基本使用方法,相信用过的同学都会觉得不可思议,太简洁了。十多天前,我在github上发现这个框架的时候,关注Keras的人还比较少,这两天无论是github还是微薄,都看到越来越多的人关注和使用Keras。所以这篇文章就简单地再介绍一下Keras的使用,方便各位入门。

主要包括以下三个内容:

  • 训练CNN并保存训练好的模型。
  • 将CNN用于特征提取,用提取出来的特征训练SVM。
  • 可视化CNN卷积层后的特征图。

仍然以Mnist为例,代码中用的Mnist数据到这里下载 
http://pan.baidu.com/s/1qCdS6,本文的代码在我的github上:dive_into _keras


1. 加载数据

数据是图片格式,利用pyhton的PIL模块读取,并转为numpy.array类型。这部分的代码在data.py里:


2. 训练CNN并保存训练好的CNN模型

将上一步加载进来的数据分为训练数据(X_train,30000个样本)和验证数据(X_val,12000个样本),构建CNN模型并训练。训练过程中,每一个epoch得到的val-accuracy都不一样,我们保存达到最好的val-accuracy时的模型,利用Python的cPickle模块保持。(Keras的开发者最近在添加用hdf5保持模型的功能,我试了一下,没用成功,去github发了issue也没人回,估计还没完善,hdf5压缩率会更高,保存下来的文件会更小。)

这部分的代码在cnn.py里,运行:

python cnn.py
  • 1
  • 1

在第Epoch 4得到96.45%的validation accuracy,运行完后会得到model.pkl这份文件,保存的就是96.45%对应的模型:


3.将CNN用于特征提取,用提取出来的特征训练SVM

上一步得到了一个val-accuracy为96.45%的CNN模型,在一些论文中经常会看到用CNN的全连接层的输出作为特征,然后去训练其他分类器。这里我也试了一下,用全连接层的输出作为样本的特征向量,训练SVM。SVM用的是scikit learn里的算法。

这部分代码在cnn-svm.py,运行:

python cnn-svm.py
  • 1
  • 1

得到下图的输出,可以看到,cnn-svm的准确率提高到97.89%:


4.可视化CNN卷积层后的特征图

将卷积层和全连接层后的特征图、特征向量以图片形式展示出来,用到matplotlib这个库。这部分代码在get_feature_map.py里。运行:

python get_feature_map.py
  • 1
  • 1

得到全连接层的输出,以及第一个卷积层输出的4个特征图:


转载请注明出处:http://blog.csdn.net/u012162613/article/details/45581421

DeepLearning tutorial(7)深度学习框架Keras的使用-进阶相关推荐

  1. DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...

  2. 简易的深度学习框架Keras代码解析与应用

    北京 | 深度学习与人工智能研修12月23-24日 再设经典课程 重温深度学习阅读全文> 正文约12690个字,22张图,预计阅读时间:32分钟. 总体来讲keras这个深度学习框架真的很&qu ...

  3. 深度学习框架Keras的安装

    原文链接:https://blog.csdn.net/qingzhuochenfu/article/details/51187603 本人已经将最新博客更新转移至个人网站了,欢迎来访~~ SCP-17 ...

  4. 深度学习框架Keras介绍及实战

    Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行.Keras 的开发重点是支持快速的实验.能够以最小的时延 ...

  5. Keras深度学习框架配置

    北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共7349个字,49张图,预计阅读时间19分钟. 作者:周纵苇 微博:@MrGiovanni 邮箱 ...

  6. 【深度学习】Keras vs PyTorch vs Caffe:CNN实现对比

    作者 | PRUDHVI VARMA 编译 | VK 来源 | Analytics Indiamag 在当今世界,人工智能已被大多数商业运作所应用,而且由于先进的深度学习框架,它非常容易部署.这些深度 ...

  7. TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    2019独角兽企业重金招聘Python工程师标准>>> TensorFlow和Caffe.MXNet.Keras等其他深度学习框架的对比 博客分类: 深度学习 Google 近日发布 ...

  8. Keras还是TensorFlow?深度学习框架选型实操分享

    译者| 王天宇.林椿眄 责编| Jane.琥珀 出品| AI科技大本营 深度学习发展势头迅猛,但近两年涌现的诸多深度学习框架让初学者无所适从.如 Google 的 TensorFlow.亚马逊的 MX ...

  9. 带你测试对比深度学习框架!TensorFlow,Keras,PyTorch...哪家强?(附数据集)

    授权自AI科技大本营(ID: rgznai100) 本文长度为3556字,建议阅读7分钟 亚马逊MXNet在CNN.RNN与NLP情感分析任务上性能强劲,而TensorFlow仅擅长于特征提取. 深度 ...

  10. Keras vs PyTorch:谁是第一深度学习框架?

    「第一个深度学习框架该怎么选」对于初学者而言一直是个头疼的问题.本文中,来自 deepsense.ai 的研究员给出了他们在高级框架上的答案.在 Keras 与 PyTorch 的对比中,作者还给出了 ...

最新文章

  1. Ubuntu18.04如何让桌面软件默认root权限运行?
  2. k2677场效应管参数引脚_共射极放大电路,场效应管放大电路,运算放大电路
  3. JAVA——两个List集合求交集、并集和差集(去重)模板
  4. 【ML课 刘学军】 第一课 20200907
  5. 科工网大数据有力促进机器人制造业发展
  6. 严蔚敏数据结构课后参考答案
  7. 16款最佳的 jQuery Time Picker 时间选择插件
  8. windows Pagefile.sys和hiberfil.sys文件
  9. 远程连接mscs下oracle,MSCS+FailSafe ORACLE数据库双机集群做HA小结
  10. mysql 清理relay日志_MySQL中binlog和relay log清理方式
  11. sql server 日期转换为英文格式
  12. 电脑怎么用c语言写丘比特,C语言丘比特#includebr/#includebr/ 爱问知识人
  13. 有什么蓝牙耳机好用又不贵?适合学生党的平价蓝牙耳机推荐
  14. 计算机学院宣传橱窗,校园橱窗、报栏、展板、宣传标语管理办法
  15. intellidea写java_用IntellIDEA开发JSP的一些总结 | 学步园
  16. 随机过程 Markov 链(下)
  17. 光敏电阻与光电二极管的区别
  18. oracle查询当前日期月份,oracle查询截至到当前日期月份所在年份的所有月份
  19. 三大变换与自控(一)傅里叶级数
  20. 利用LC振荡器控制晶闸管开闭产生中频信号的中频感应炉

热门文章

  1. 我的最爱Lambda演算——开篇
  2. IBM Lotus Domino Designer 下载安装记录
  3. JFinal EhCachePlugin的学习笔记
  4. shiro+springmvc+mybatis【转】
  5. 【BZOJ 1491】 [NOI2007]社交网络
  6. 午夜时分的51CTO博客与白天有什么不同?
  7. 梅花雨的日历控件在ASP.NET2.0下不可用的解决方法
  8. 第2章 JSP数据交互(一)
  9. SpringCloud学习(SPRINGCLOUD微服务实战)一
  10. YouCompleteMe自动补全的安装配置与使用