1. from keras.datasets import mnist
  2. from keras.utils import np_utils
  3. from plot_image_1 import plot_image_1
  4. from plot_prediction_1 import plot_image_labels_prediction_1
  5. from show_train_history import show_train_history
  6. import numpy as np
  7. import pandas as pd
  8. from keras.models import Sequential
  9. from keras.layers import Dense,Dropout,Flatten,Conv2D,MaxPooling2D
  10. np.random.seed()
  11. (x_Train,y_Train),(x_Test,y_Test)=mnist.load_data()
  12. print('train data=',len(x_Train))
  13. print('test data=',len(x_Test))
  14. print('x_train_image:',x_Train.shape)
  15. print('y_train_label:',y_Train.shape)
  16. x_Train4D=x_Train.reshape(x_Train.shape[],,,).astype('float32')
  17. x_Test4D=x_Test.reshape(x_Test.shape[],,,).astype('float32')
  18. x_Train4D_normalize=x_Train4D/
  19. x_Test4D_normalize=x_Test4D/
  20. y_TrainOneHot=np_utils.to_categorical(y_Train)
  21. y_TestOneHot=np_utils.to_categorical(y_Test)
  22. model=Sequential()
  23. model.add(Conv2D(filters=,
  24. kernel_size=(,),
  25. padding='same',
  26. input_shape=(,,),
  27. activation='relu'))
  28. model.add(MaxPooling2D(pool_size=(,)))
  29. model.add(Conv2D(filters=,
  30. kernel_size=(,),
  31. padding='same',
  32. activation='relu'))
  33. model.add(MaxPooling2D(pool_size=(,)))
  34. model.add(Dropout(0.25))
  35. model.add(Flatten())
  36. model.add(Dense(,activation='relu'))
  37. model.add(Dropout(0.5))
  38. model.add(Dense(,activation='softmax'))
  39. print(model.summary())
  40. model.compile(loss='categorical_crossentropy',
  41. optimizer='adam',metrics=['accuracy'])
  42. train_history=model.fit(x=x_Train4D_normalize,
  43. y=y_TrainOneHot,validation_split=0.2,
  44. epochs=,batch_size=,verbose=)
  45. show_train_history(train_history,'acc','val_acc')
  46. show_train_history(train_history,'loss','val_loss')
  47. scores=model.evaluate(x_Test4D_normalize,y_TestOneHot)
  48. print()
  49. print('accuracy',scores[])
  50. prediction=model.predict_classes(x_Test4D_normalize)
  51. print("prediction[:10]",prediction[:])
  52. plot_image_labels_prediction_1(x_Test,y_Test,prediction,idx=)
  53. pd.crosstab(y_Test,prediction,rownames=['label'],colnames=['predict'])
  1. import matplotlib.pyplot as plt
  2. def plot_image_1(image):
  3. fig=plt.gcf()
  4. fig.set_size_inches(,)
  5. plt.imshow(image,cmap='binary')
  6. plt.show()
  1. import matplotlib.pyplot as plt
  2. def plot_image_labels_prediction_1(image,labels,prediction,idx,num=):
  3. fig=plt.gcf()
  4. fig.set_size_inches(,)
  5. if num>:num=
  6. for i in range(,num):
  7. ax=plt.subplot(,,i+)
  8. ax.imshow(image[idx],cmap='binary')
  9. title="label="+str(labels[idx])
  10. if len(prediction)>:
  11. title+=",predict="+str(prediction[idx])
  12. ax.set_title(title,fontsize=)
  13. ax.set_xticks([]);ax.set_yticks([])
  14. idx+=
  15. plt.show()
  1. import matplotlib.pyplot as plt
  2. def show_train_history(train_history,train,validation):
  3. plt.plot(train_history.history[train])
  4. plt.plot(train_history.history[validation])
  5. plt.title('Train History')
  6. plt.ylabel(train)
  7. plt.xlabel('Epoch')
  8. plt.legend(['train','validation'],loc='upper left') #显示左上角标签
  9. plt.show()

keras—神经网络CNN—MNIST手写数字识别的更多相关文章

  1. Android+TensorFlow+CNN+MNIST 手写数字识别实现

    Android+TensorFlow+CNN+MNIST 手写数字识别实现 SkySeraph 2018 Email:skyseraph00#163.com 更多精彩请直接访问SkySeraph个人站 ...

  2. Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别

    记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...

  3. 第三节,CNN案例-mnist手写数字识别

    卷积:神经网络不再是对每个像素做处理,而是对一小块区域的处理,这种做法加强了图像信息的连续性,使得神经网络看到的是一个图像,而非一个点,同时也加深了神经网络对图像的理解,卷积神经网络有一个批量过滤器, ...

  4. 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)

    主要内容: 1.基于CNN的mnist手写数字识别(详细代码注释) 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3-4.2.0-Windows-x86_64. ...

  5. [Python]基于CNN的MNIST手写数字识别

    目录 一.背景介绍 1.1 卷积神经网络 1.2 深度学习框架 1.3 MNIST 数据集 二.方法和原理 2.1 部署网络模型 (1)权重初始化 (2)卷积和池化 (3)搭建卷积层1 (4)搭建卷积 ...

  6. keras框架的MLP手写数字识别MNIST,梳理?

    keras框架的MLP手写数字识别MNIST 代码: # coding: utf-8 # In[1]: import numpy as np import pandas as pd from kera ...

  7. mnist手写数字识别——深度学习入门项目(tensorflow+keras+Sequential模型)

    前言 今天记录一下深度学习的另外一个入门项目——<mnist数据集手写数字识别>,这是一个入门必备的学习案例,主要使用了tensorflow下的keras网络结构的Sequential模型 ...

  8. 第三节,TensorFlow 使用CNN实现手写数字识别(卷积函数tf.nn.convd介绍)

    上一节,我们已经讲解了使用全连接网络实现手写数字识别,其正确率大概能达到98%,这一节我们使用卷积神经网络来实现手写数字识别, 其准确率可以超过99%,程序主要包括以下几块内容 [1]: 导入数据,即 ...

  9. 基于tensorflow的MNIST手写数字识别(二)--入门篇

    http://www.jianshu.com/p/4195577585e6 基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型 基于tensorflow的MNIST手写数字识 ...

随机推荐

  1. Oracle学习操作(7)用户、权限、角色

    一.oracle用户: 二.权限 1.系统权限: sys登陆创建c##test用户后,给用户c##test授权,并且带有传播性: SQL> create user c##test identif ...

  2. 廖雪峰Java1-1Java入门-java简介

    Java特点: 一种面向对象的跨平台变成语言 以字节码方式运行在虚拟机上 自带功能齐全的类库 非常活跃的开源社区支持 Java优点: 简单.健壮.安全 跨平台,一次编写,到处运行 高度优化的虚拟机 J ...

  3. 【Gearman学习笔记】分布式处理入门

    1.首先,确保你已经安装了gearmand环境并且语言绑定(language binding)已经生效. 2.涉及到的各个部分: ServerThe server, gearmand, will co ...

  4. 让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!

    好的Linux运维工程师区分在效率上.如果一位高效的Linux运维工程师能在 10 分钟内完成一件他人需要 2 个小时才能完成的任务,那么他应该受到奖励(得到更多报酬),因为他为公司节约了时间,而时间 ...

  5. express基础

    express框架 const express = require("express"); 引入express框架 var app= express(); 实例化   相当于构造函 ...

  6. python(十二)下:ORM框架SQLAlchemy使用学习

    此出处:http://blog.csdn.net/fgf00/article/details/52949973 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 ...

  7. Spring中的ThreadPoolTaskExecutor

      在观察线上系统的运行情况下,发现在错误日志中有这类错误信息,org.springframework.core.task.TaskRejectedException,于是便对ThreadPoolTa ...

  8. 知识picture

  9. thinkphp5隐藏apache下的index.php

    在应用入口文件同级目录添加.htaccess文件,内容如下: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Re ...

  10. linux更新系统

    1.linux更新系统 https://www.jb51.net/os/RedHat/450223.html 仅更新系统,不更新内核 yum -y --exclude=kernel\* upgrade ...