模型源自Yann LeCun(1998)的论文《Gradient-Based Learning Applied to Document Recognition》,用于MNIST数据集。模型输入为32X32的灰度图像,第一层为6个5X5卷积核,不扩展边界;第二层为2X2的最大值池化层,步进为2X2;第三层为16个5X5卷积核,不扩展边界;第四层为2X2的最大值池化层,步进为2X2;第五层为展平层,并全连接120个节点;第六层为全连接层,84个节点;第七层为全连接softmax层,输出结果。

原论文中第二层池化层和第三层卷积层之间为是部分连接。本文中并未考虑,而是做成全连接,模型结构如下图所示。

模型采用keras的Sequential实现,源数据分为train和test两个文件夹,每个文件夹下有十个子文件夹,分别方有各数字对应的灰度图。实现代码如下:

import os
import cv2
from numpy import *
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Conv2D, MaxPooling2D, Flatten
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.utils.vis_utils import plot_modeldef loadData(path):data = []labels = []for i in range(10):dir = './'+path+'/'+str(i)listImg = os.listdir(dir)for img in listImg:data.append([cv2.imread(dir+'/'+img, 0)])labels.append(i)print path, i, 'is read'return data, labelstrainData, trainLabels = loadData('train')
testData, testLabels = loadData('test')
trainLabels = np_utils.to_categorical(trainLabels, 10)
testLabels = np_utils.to_categorical(testLabels, 10)model = Sequential()
model.add(Conv2D(filters=6, kernel_size=(5,5), padding='valid', input_shape=(1,28,28), activation='tanh'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(filters=16, kernel_size=(5,5), padding='valid', activation='tanh'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(120, activation='tanh'))
model.add(Dense(84, activation='tanh'))
model.add(Dense(10, activation='softmax'))
sgd = SGD(lr=0.05, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(optimizer=sgd, loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(trainData, trainLabels, batch_size=500, epochs=20, verbose=1, shuffle=True)plot_model(model, to_file='model.png', show_shapes=True, show_layer_names=False)

网络结构图如下:

Keras实现LeNet-5网络,与可视化网络相关推荐

  1. 使用Keras训练Lenet网络来进行手写数字识别

    使用Keras训练Lenet网络来进行手写数字识别 这篇博客将介绍如何使用Keras训练Lenet网络来进行手写数字识别. LeNet架构是深度学习中的一项开创性工作,演示了如何训练神经网络以端到端的 ...

  2. 卷积神经网络特征图可视化(自定义网络和VGG网络)

    借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么. 自定义网络特征可视化 代码: # coding: utf-8from keras.mo ...

  3. 使用tf.keras搭建mnist手写数字识别网络

    使用tf.keras搭建mnist手写数字识别网络 目录 使用tf.keras搭建mnist手写数字识别网络 1.使用tf.keras.Sequential搭建序列模型 1.1 tf.keras.Se ...

  4. TensorFlow高阶 API: keras教程-使用tf.keras搭建mnist手写数字识别网络

    TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字识别网络 目录 TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字 ...

  5. OpenShift Security (6) - 用网络图可视化网络访问策略

    <OpenShift 4.x HOL教程汇总> 本文在 OpenShift 4.9 和 RHACS 3.67.1 环境中进行验证. 文章目录 网络图 跟踪查看网络访问通道 网络策略模拟器 ...

  6. Pulsar:一款功能强大的可视化网络足迹扫描平台

    Pulsar Pulsar是一款专为红队研究人员.渗透测试人员和Bug Hunter们设计的自动化网络足迹扫描平台,该工具可以帮助我们在对目标组织基础设施了解不多的情况下,尽可能多地发现组织面向外部的 ...

  7. 国内首个开源网络流量可视化分析平台 -- 流影

    流影:基于流量的网络行为高级分析平台 流影是一款基于全流量的高级网络行为分析平台,该系统是由深海鱼(北京)科技有限公司流影项目组研发设计,首发开源是1.0版本. 项目简介 深海鱼(北京)科技有限公司专 ...

  8. 数据可视化笔记7 网络数据可视化

    概括 网络数据的概念 网络数据可视化的节点-链接法 √社交网络的几何特征:中心度.度中心度.介数中心度.临近中心度.特征向量中心度.平均路径长度.集聚系数.模块度 √社交网络的布局:随机布局.圆形布局 ...

  9. 数字冰雹 可视化html,数字冰雹数据可视化系列产品(二):网络态势可视化

    数字冰雹数据可视化系列产品(二):网络态势可视化 时间:2015-08-12 17:28:36 作者:数字冰雹 数字冰雹为您将抽象的网络和系统数据进行可视化呈现,帮助用户快速地分析网络状况,识别网络异 ...

  10. ucinet可视化网络关系图_6款社会网络分析软件,你pick哪个?

    社会网络分析方法 越来越多的被运用到各种研究中 现在主流的六种社会网络分析软件 各自有哪些优点与不足 1 UCINET简介   UCINET为菜单驱动的Windows程序,可能是最知名和最经常被使用的 ...

最新文章

  1. 25种代码坏味道总结+优化示例
  2. 企业级 SpringBoot 教程 (九)springboot整合Redis
  3. python好学吗一般要学多久-转行学Python开发难吗,月薪过万需要多久
  4. CodeForces-734E Anton and Tree 树的直径
  5. 写游戏软件要学什么_为什么要写关于您所知道的(或所学到的)的内容
  6. LeetCode 2104. 子数组范围和(单调栈)
  7. java gson_Java 中 Gson的使用
  8. vue内检测是否有swiper_vue.js怎么用swiper
  9. Microsoft强大团队(源代码)管理工具--TFS2010 与vs结合
  10. 苹果Mac如何在全屏幕模式下使用 App?
  11. [Visual Studio] VS2012调试时很慢的解决方案
  12. java编程思想之多态理解
  13. 南京邮电大学通信考研经验
  14. 科尼数字科技张彬:云设计系统助力行业数字化转型
  15. 时寒冰说经济大棋局我们怎么办_女王的棋局:艺术才华是闯天下的最佳武器
  16. java panel函数_Java中的JPanel的函数setBounds()的用法误解
  17. vm linux安装增强功能,VirtualBox虚拟机CentOS安装增强功能Guest Additions
  18. 奇迹 与服务器连接中断,奇迹少女连接服务器失败 连接不上网络怎么办
  19. 2022暑期实习网易互娱游戏研发
  20. Java自动识别身份证信息

热门文章

  1. LeetCode:136. 只出现一次的数字
  2. 计算机网络之数据链路层:6、后退N帧协议(GBN)
  3. (操作系统题目题型总结)第六章:文件管理
  4. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
  5. SQLAlchemy 多条件查询
  6. mysql8 修改root密码
  7. react-draft-wysiwyg富文本的使用
  8. BZOJ2565 最长双回文子串 回文自动机,回文树
  9. 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告
  10. windows下将磁盘脱机,并在我的电脑下显示