【Python】keras卷积神经网络识别mnist
卷积神经网络的结构我随意设了一个。
结构大概是下面这个样子:
代码如下:
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相关推荐
- Python实现bp神经网络识别MNIST数据集
title: "Python实现bp神经网络识别MNIST数据集" date: 2018-06-18T14:01:49+08:00 tags: [""] cat ...
- 用Python实现BP神经网络识别MNIST手写数字数据集(带GUI)
概述 计算机神经网络则是人工智能中最为基础的也是较为重要的部分,它使用深度学习的方式模拟了人的神经元的工作,是一种全新的计算方法.本文的目标就是通过学习神经网络的相关知识,了解并掌握BP神经网络的实现 ...
- python深度学习库tensorflow——实现FC卷积神经网络识别mnist手写体
全栈工程师开发手册 (作者:栾鹏) python教程全解 FC全连接神经网络的理论教程参考 http://blog.csdn.net/luanpeng825485697/article/details ...
- python神经网络案例——CNN卷积神经网络实现mnist手写体识别
分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python教程全解 CNN卷积神经网络的理论教程参考 ...
- [转载] 卷积神经网络做mnist数据集识别
参考链接: 卷积神经网络在mnist数据集上的应用 Python TensorFlow是一个非常强大的用来做大规模数值计算的库.其所擅长的任务之一就是实现以及训练深度神经网络. 在本教程中,我们将学到 ...
- python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...
本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...
- 基于Python实现的卷积神经网络分类MNIST数据集
卷积神经网络分类MNIST数据集 目录 人工智能第七次实验报告 1 卷积神经网络分类MNIST数据集 1 一 .问题背景 1 1.1 卷积和卷积核 1 1.2 卷积神经网络简介 2 1.3 卷积神经网 ...
- 基于Python的卷积神经网络和特征提取
基于Python的卷积神经网络和特征提取 发表于2015-08-27 21:39| 4577次阅读| 来源blog.christianperone.com/| 13 条评论| 作者Christi ...
- 3层-CNN卷积神经网络预测MNIST数字
3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...
最新文章
- 空缺十年,百度再任命CTO!加盟十年,王海峰现集AI大权为一身
- C# 实现基于ffmpeg加虹软的人脸识别
- em算法怎么对应原有分类_机器学习系列之EM算法
- 050_整形和字节数组转换
- Google V8 编译方法(visual c++ 2008 express)(学习+原创)
- 单片机I/O口推挽输出与开漏输出的区别(open-drain与push-pull)
- 日志模块-logging模块
- 迭代器模式在 Java 容器中的实现
- 3dMax模型尺寸更改与模型均匀缩放
- ListCtrl使用
- 华硕电脑(博主电脑型号为天选FA506IH)Fn组合键屏幕不显示对应操作的解决办法!!
- D92-02-ASEMI低压降快恢复二极管TO247封装
- 学习嵌入式必须学习32单片机吗?
- python 隐藏命令行窗口_科学网—Windows下后台运行程序并隐藏cmd命令提示符窗口 - 周锋的博文...
- OC.Gen-X:一键生成黑苹果 OpenCore EFI 引导文件
- 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】...
- Nature子刊:识别偏头痛脑与遗传的标志物
- Android常用存储类型与简介
- line-height的使用方式
- Linux之mount以rw,remount重新挂载ext4文件系统(二十八)
热门文章
- spring @component的作用
- Windows Azure Storage (25) Azure Append Blob
- 《UG NX8.0中文版完全自学手册》一第1章 UG NX 8.0简介
- Listener监听器之HttpSessionListener
- Linux账户安全管理--useradd、groupadd、passwd、chown、chmod工具
- kubernetes学习笔记之十三:基于calico的网络策略入门
- eyoucms range 范围判断标签
- centos7 JDK1.8
- 【播放器SDK】Android如何实现固定竖屏播放视频
- ES6新特性3:函数的扩展