8.CNN应用于手写字识别
时间:2019-09-22
本文章向大家介绍8.CNN应用于手写字识别,主要包括8.CNN应用于手写字识别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import numpy as np from keras.datasets import mnist from keras.utils import np_utils from keras.models import Sequential from keras.layers import Dense,Dropout,Convolution2D,MaxPooling2D,Flatten from keras.optimizers import Adam
# 载入数据 (x_train,y_train),(x_test,y_test) = mnist.load_data() # (60000,28,28)->(60000,28,28,1) x_train = x_train.reshape(-1,28,28,1)/255.0 x_test = x_test.reshape(-1,28,28,1)/255.0 # 换one hot格式 y_train = np_utils.to_categorical(y_train,num_classes=10) y_test = np_utils.to_categorical(y_test,num_classes=10) # 定义顺序模型 model = Sequential() # 第一个卷积层 # input_shape 输入平面 # filters 卷积核/滤波器个数 # kernel_size 卷积窗口大小 # strides 步长 # padding padding方式 same/valid # activation 激活函数 model.add(Convolution2D( input_shape = (28,28,1), filters = 32, kernel_size = 5, strides = 1, padding = 'same', activation = 'relu' )) # 第一个池化层 model.add(MaxPooling2D( pool_size = 2, strides = 2, padding = 'same', )) # 第二个卷积层 model.add(Convolution2D(64,5,strides=1,padding='same',activation = 'relu')) # 第二个池化层 model.add(MaxPooling2D(2,2,'same')) # 把第二个池化层的输出扁平化为1维 model.add(Flatten()) # 第一个全连接层 model.add(Dense(1024,activation = 'relu')) # Dropout model.add(Dropout(0.5)) # 第二个全连接层 model.add(Dense(10,activation='softmax')) # 定义优化器 adam = Adam(lr=1e-4) # 定义优化器,loss function,训练过程中计算准确率 model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy']) # 训练模型 model.fit(x_train,y_train,batch_size=64,epochs=10) # 评估模型 loss,accuracy = model.evaluate(x_test,y_test) print('test loss',loss) print('test accuracy',accuracy)
原文地址:https://www.cnblogs.com/liuwenhua/p/11567006.html
- 一次关于js事件出发机制反常的解决记录
- Java综合题目
- Ubuntu 16.04下为TITAN 1080 显卡安装驱动及Gpu版TensorFlow|深度学习
- 给新生成的节点(动态生成节点)绑定事件方法总结
- JavaWeb(四)JDBC操作Oracle
- JavaWeb(六)Listener监听器
- JSP引入 - UEditor 富文本编辑器
- JavaWeb(五)Filter过滤器
- JavaWeb(七)Cookie,EL表达式,标准标签库
- JavaWeb(八)JQuery
- 程序员如何提一个好问题
- JavaWeb(九)AJAX
- 国内外免费地图SDK都在这了,开发APP再也不怕找不到路了
- Hibernate框架HQL语句
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法