卷积神经网络的结构我随意设了一个。

结构大概是下面这个样子:

代码如下:

import numpy as np
from keras.preprocessing import image
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, Activation
from keras.layers import Conv2D, MaxPooling2D# 从文件夹图像与标签文件载入数据
def create_x(filenum, file_dir):train_x = []for i in range(filenum):img = image.load_img(file_dir + str(i) + ".bmp", target_size=(28, 28))img = img.convert('L')x = image.img_to_array(img)train_x.append(x)train_x = np.array(train_x)train_x = train_x.astype('float32')train_x /= 255return train_xdef create_y(classes, filename):train_y = []file = open(filename, "r")for line in file.readlines():tmp = []for j in range(classes):if j == int(line):tmp.append(1)else:tmp.append(0)train_y.append(tmp)file.close()train_y = np.array(train_y).astype('float32')return train_yclasses = 10
X_train = create_x(55000, './train/')
X_test = create_x(10000, './test/')Y_train = create_y(classes, 'train.txt')
Y_test = create_y(classes, 'test.txt')# 从网络下载的数据集直接解析数据
'''
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
X_train, Y_train = mnist.train.images, mnist.train.labels
X_test, Y_test = mnist.test.images, mnist.test.labels
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
'''
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Dropout(0.25))model.add(Flatten())
model.add(Dense(81, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10))
model.add(Activation('softmax'))
model.summary()model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
history = model.fit(X_train, Y_train, batch_size=500, epochs=10, verbose=1, validation_data=(X_test, Y_test))
score = model.evaluate(X_test, Y_test, verbose=0)test_result = model.predict(X_test)
result = np.argmax(test_result, axis=1)print(result)
print('Test score:', score[0])
print('Test accuracy:', score[1])

最终在测试集上识别率在99%左右。

相关测试数据可以在这里下载到。

转载于:https://www.cnblogs.com/tiandsp/p/9638876.html

【Python】keras卷积神经网络识别mnist相关推荐

  1. Python实现bp神经网络识别MNIST数据集

    title: "Python实现bp神经网络识别MNIST数据集" date: 2018-06-18T14:01:49+08:00 tags: [""] cat ...

  2. 用Python实现BP神经网络识别MNIST手写数字数据集(带GUI)

    概述 计算机神经网络则是人工智能中最为基础的也是较为重要的部分,它使用深度学习的方式模拟了人的神经元的工作,是一种全新的计算方法.本文的目标就是通过学习神经网络的相关知识,了解并掌握BP神经网络的实现 ...

  3. python深度学习库tensorflow——实现FC卷积神经网络识别mnist手写体

    全栈工程师开发手册 (作者:栾鹏) python教程全解 FC全连接神经网络的理论教程参考 http://blog.csdn.net/luanpeng825485697/article/details ...

  4. python神经网络案例——CNN卷积神经网络实现mnist手写体识别

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python教程全解 CNN卷积神经网络的理论教程参考 ...

  5. [转载] 卷积神经网络做mnist数据集识别

    参考链接: 卷积神经网络在mnist数据集上的应用 Python TensorFlow是一个非常强大的用来做大规模数值计算的库.其所擅长的任务之一就是实现以及训练深度神经网络. 在本教程中,我们将学到 ...

  6. python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...

    本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...

  7. 基于Python实现的卷积神经网络分类MNIST数据集

    卷积神经网络分类MNIST数据集 目录 人工智能第七次实验报告 1 卷积神经网络分类MNIST数据集 1 一 .问题背景 1 1.1 卷积和卷积核 1 1.2 卷积神经网络简介 2 1.3 卷积神经网 ...

  8. 基于Python的卷积神经网络和特征提取

     基于Python的卷积神经网络和特征提取 发表于2015-08-27 21:39| 4577次阅读| 来源blog.christianperone.com/| 13 条评论| 作者Christi ...

  9. 3层-CNN卷积神经网络预测MNIST数字

    3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...

最新文章

  1. 空缺十年,百度再任命CTO!加盟十年,王海峰现集AI大权为一身
  2. C# 实现基于ffmpeg加虹软的人脸识别
  3. em算法怎么对应原有分类_机器学习系列之EM算法
  4. 050_整形和字节数组转换
  5. Google V8 编译方法(visual c++ 2008 express)(学习+原创)
  6. 单片机I/O口推挽输出与开漏输出的区别(open-drain与push-pull)
  7. 日志模块-logging模块
  8. 迭代器模式在 Java 容器中的实现
  9. 3dMax模型尺寸更改与模型均匀缩放
  10. ListCtrl使用
  11. 华硕电脑(博主电脑型号为天选FA506IH)Fn组合键屏幕不显示对应操作的解决办法!!
  12. D92-02-ASEMI低压降快恢复二极管TO247封装
  13. 学习嵌入式必须学习32单片机吗?
  14. python 隐藏命令行窗口_科学网—Windows下后台运行程序并隐藏cmd命令提示符窗口 - 周锋的博文...
  15. OC.Gen-X:一键生成黑苹果 OpenCore EFI 引导文件
  16. 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】...
  17. Nature子刊:识别偏头痛脑与遗传的标志物
  18. Android常用存储类型与简介
  19. line-height的使用方式
  20. Linux之mount以rw,remount重新挂载ext4文件系统(二十八)

热门文章

  1. spring @component的作用
  2. Windows Azure Storage (25) Azure Append Blob
  3. 《UG NX8.0中文版完全自学手册》一第1章 UG NX 8.0简介
  4. Listener监听器之HttpSessionListener
  5. Linux账户安全管理--useradd、groupadd、passwd、chown、chmod工具
  6. kubernetes学习笔记之十三:基于calico的网络策略入门
  7. eyoucms range 范围判断标签
  8. centos7 JDK1.8
  9. 【播放器SDK】Android如何实现固定竖屏播放视频
  10. ES6新特性3:函数的扩展