当前位置: 首页 > 编程日记 > 正文

【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

相关文章:

IIS安全机制基础

IIS (Internet Information Server)作为当今流行的Web服务器之一,提供了强大的Internet和Intranet服务功能。如何加强IIS的安全机制,建立高安全性能的可靠的Web服务器,已成为网络管理的重要组成部分。 以Windows NT的安全机制为基础 …

CLion 2017 注册码

注册码使用时间2017-2018 CNEKJPQZEX-eyJsaWNlbnNlSWQiOiJDTkVLSlBRWkVYIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb…

Modeling System Behavior with Use Case(3)

这是Modeling System Behavior with Use Case的最后一个部分,主要介绍Use Case Specification、Supplementary Specification和Glossary。今天华电时断时续停电,导致早晨所做的工作丢失,很是难过,发完这个图文,我继续代…

2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】

PanDownload是百度网盘的第三方下载神器,它支持快速搜索功能,快速找到你想要的东西,还支持满速下载,可谓是不可多得的下载神器。 下载地址:http://t.cn/EobUOTS 城通网盘下载地址:https://u20150046.ctfi…

codevs——2894 Txx考试(背包)

时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解题目描述 DescriptionTxx是一个成绩很差的人,考试便成了他的噩梦。于是他常在考试时睡觉以打发时间。今天他又要面临一次考试,为了保证有充足的睡眠,他决定只做k分钟题目。这次测…

利用Use Case为系统行为建模(1)

需求这块写了很多了,就剩下最后的三篇图文了。后面我们进入分析与设计部分。大概10月中旬,我们结束这块。开始机器学习的总结与代码实现。

LightTools( 32-64) 8.4.0下载与安装方法,lighttools免费版,lighttools(光学建模软件)【亲测有效】

对于从事光学建模的同学们来说拥有一款功能强大的光学建模软件来辅助的话那么将能提升工作效率,LightTools就是一款功能强大的光学建模软件。它是面向专业用户推出的一款能够增进光学系统设计效率的光学建模软件,该软件支持光机一体化设计,并…

百叶窗显示图片

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data; namespace Image{ /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.…

python安装pillow模块错误

安装的一些简单步骤就不介绍了&#xff0c;可以去搜索一下&#xff0c;主要就记录下我在安装pillow这一模块遇到的问题 1&#xff1a;安装好pillow后&#xff0c;安装过程没有出错 2&#xff1a;但是在python的IDLE输入from PIL import Image出错 原因&#xff1a;pillow版本与…

利用Use Case为系统行为建模(2)

本节主要介绍Use Case Diagram部分&#xff0c;其中包括Actor以及Actor之间的关系、Use Case以及Use Case之间的关系、Actor与Use Case之间的关系。这是利用Use Case Model捕获系统行为最核心的部分。明天还有一节&#xff0c;有关于软件需求部分就全部介绍完了。

启示录:打造用户喜爱的产品【PDF清晰版】,产品经理必看书籍之一

启示录&#xff1a;打造用户喜爱的产品是一本很值得一买的启蒙书&#xff0c;在书的扉页中写着&#xff0c;“好产品具备三个基本条件&#xff1a;价值、可用性、可行性&#xff0c;三者缺一不可。产品没有价值&#xff0c;开发团队再优秀也无济于事。” 书本主要是分成了三部…

eclipse 中断言使用的设定

JAVA是从JDK1.4才开始支持断言的&#xff08;添加了关键字assert&#xff09; 选择菜单"Windows"->"Perferences"&#xff0c;在对话框中找到"Java"->"Complier"->"Compliance and Classfiles"&#xff0c;把"…

利用Use Case为系统行为建模(3)

到这篇文章为止&#xff0c;需求部分就全部介绍完了。我们回顾一下&#xff0c;需求是RUP静态结构的一个工作流&#xff0c;Rational通过需求金字塔模型来理解需求过程&#xff0c;在需求部分我们要得到用例图、用例描述、补充规约和术语表等制品。这部分我们需要理解参与者与参…

freemarker取值

获取java Map集合的值&#xff1a;${map["key"]}

flutter离线源码安装包最新版本下载地址

Flutter 是在2018 世界移动大会上发布了第一个 Beta 版本&#xff0c;Flutter 用以帮助开发者在 Android 和 iOS 两个平台&#xff0c;同时开发高质量原生应用的全新移动 UI 框架。本文提供下最新版的下载地址。 flutter1.5.8windows安装包下载地址&#xff1a;http://t.cn/EoY…

MongoDB 搭建副本集

副本集&#xff08;Replica Set&#xff09;是一组MongoDB实例组成的集群&#xff0c;由一个主&#xff08;Primary&#xff09;服务器和多个备份&#xff08;Secondary&#xff09;服务器构成。通过Replication&#xff0c;将数据的更新由Primary推送到其他实例上&#xff0c;…

dfasdfasdfas

fasdfasfasdfafd转载于:https://www.cnblogs.com/lulei/archive/2006/10/17/531694.html

原型模式(Prototype)

克隆方法是我们经常使用的一种软件开发技巧&#xff0c;记得当年给经管系做沙盘ERP时&#xff0c;需要保存每年资产负债表的数据&#xff0c;当时对这种模式不熟悉&#xff0c;导致后期的数据变化使前期数据被动改变&#xff0c;现在想想&#xff0c;还是当时学艺不精&#xff…

Piccure Plus 3.1中文汉化版,Piccure Plus 3.1破解版,模糊照片变清晰神器,让你不再害怕手抖了

目前随着手机的普及化&#xff0c;大家随时随地都可以拍照&#xff0c;但是每个人拍照的水平各不相同&#xff0c;这种时候一款能把模糊的照片变清晰&#xff0c;把模糊的图片变清晰的软件就成了比不可少的东西了。 Piccure Plus 3.1中文汉化版。Piccure是一款非常强大的照片去…

java设置缓存机制

2019独角兽企业重金招聘Python工程师标准>>> java设置缓存机制 所谓缓存&#xff0c;就是将程序或系统经常要调用的对象存在内存中&#xff0c;一遍其使用时可以快速调用&#xff0c;不必再去创建新的重复的实例。这样做可以减少系统开销&#xff0c;提高系统效率。…

Analysis and Design Overview

前面图文我们介绍了“软件工程的六个最佳实践”以及“利用Use Case为系统行为建模”&#xff0c;本次我们介绍“系统分析与设计的初步”。

你是如何快捷、高效获取新知识的?

一次&#xff0c;同学问我“Redhat平台下的服务器叫什么&#xff1f;”&#xff0c;答案无疑是“Apach”。后来&#xff0c;我想他怎么不会在 Baidu 里搜索一下答案就出来籽&#xff1f;但这可以理解&#xff0c;他不是学计算机&#xff0c;对于这样获取知识的方式他不知道是可…

微软推出Windows XP/Server 2003紧急安全补丁:修复远程桌面CVE-2019-0708漏洞

根据CVE-2019-0708“攻击者可通过RDP向目标系统远程桌面服务发送特制请求”来远程执行系统上的代码。因为不需要用户干预&#xff0c;攻击可像野火一样从计算机传播到另一台计算机&#xff0c;从而导致整个系统受到攻击。 漏洞补丁&#xff1a;Windows XP补丁下载地址 漏洞补…

es5 编写类风格的代码

分享下《JavaScript忍者秘籍》中的一种编写类风格代码的方法 JavaScript可以让我们通过原型实现继承&#xff0c;许多开发人员&#xff0c;尤其是那些有传统面向对象背景的开发人员&#xff0c;都希望将JavaScript的继承系统简化并抽象成一个他们更熟悉的系统。所以&#xff0c…

与15级新加入团队同学的约定

坚持&#xff01;坚持&#xff01;坚持&#xff01;

【冷门实用小工具】轻量级流程图工具ClickCharts PRO绿色版,ClickCharts PRO下载【亲测有效】

下载地址&#xff1a;ClickCharts Pro注册版下载地址 轻量级流程图工具ClickCharts Pro注册版本&#xff0c;大小总共900多K&#xff0c;功能跟visio一样强大。 一、实用功能&#xff1a; 1.创建图表模板 2.可以选择各种符号和线连接风格 3.创建UML(统一建模语言)标准的可视化…

深入讨论.NET Socket的Accept方法

深入讨论.NET Socket的Accept方法 考虑一个问题&#xff0c;假如同时有50个连接请求进入一个服务器&#xff08;这种情况对于普通负载的Web服务器都是很常见的&#xff09;会怎么样&#xff1f;阻塞式I/O只能循环调用Accept&#xff0c;一个一个对50个连接进行Accept操作&…

php代码中使用换行及(\n或\r\n和br)的应用

浏览器识别不了\n或\r\n&#xff0c;这两个换行符是文本换行符&#xff0c;文本文件有效;假设须要将结果输出到浏览器或打印到显示器&#xff0c;代码中使用br;假设仅仅是在源码中换行。则使用\n或\r\n,感兴趣的朋友能够了解下&#xff0c;也许对你学习php有所帮助 <?php e…

前后端分离的探索(一)

文桥&#xff0c;13级机械系学生。在LSGO软件技术团队负责前端部分&#xff0c;大家或许会惊讶&#xff0c;怎么一个Coding高手&#xff0c;非计算机或数学出身。让我告诉你一个秘密&#xff1a;如果你花时间去追踪技术圈内绝大多数的大牛、大神的背景&#xff0c;甚至跟他们聊…

【冷门实用小工具】JAVA和C#轻量级的UML图绘制工具NClass,UML类图编辑器免安装版【亲测有效】

下载地址&#xff1a;NClass下载地址 NClass是一款免费的UML图绘制工具&#xff0c;它很小巧轻量级&#xff0c;解压之后大小不到2M&#xff0c;便于携带和使用&#xff0c;是很实用UML绘制工具。 功能介绍&#xff1a; 1、支持完整的C&#xff03;和Java支持多语言的特定元素…