用keras 和 tensorflow 构建手写字识别神经网路

#导入数据
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
from keras.datasets import mnist

(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
print(train_images.shape)
print(train_images.dtype)
print(train_labels.shape)

print(test_images.shape)
print(test_labels.shape)

#图像转换
train_images = train_images.reshape((60000, 28*28))
train_images = train_images.astype(‘float32‘)/255

test_images = test_images.reshape((10000, 28*28))
test_images = test_images.astype(‘float32‘)/ 255

#构建网络
from keras import models
from keras import layers

network = models.Sequential()
network.add(layers.Dense(512, activation = ‘relu‘, input_shape = (28*28, )))
network.add(layers.Dense(10, activation = ‘softmax‘))

network.compile(optimizer = ‘rmsprop‘, loss = ‘categorical_crossentropy‘, metrics = [‘accuracy‘])

#准备标签
from keras.utils import to_categorical

train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)

#模型拟合
network.fit(train_images, train_labels, epochs=5, batch_size = 128)

#测试模型
test_loss, test_acc = network.evaluate(test_images, test_labels)
print(‘test_acc:‘, test_acc)

原文地址:https://www.cnblogs.com/wbloger/p/10197596.html

时间: 2024-11-09 10:22:46

用keras 和 tensorflow 构建手写字识别神经网路的相关文章

我的第一个svm程序:手写字识别

之前学过svm相关知识,基本原理不算复杂,今天做了一个手写字识别程序,总算验证了svm的效果. 因为只是验证效果,实现上原则是简单,使用python + libsvm + PIL(python image library).这部分工作花了一些时间: PIL: http://www.pythonware.com/products/pil/ 下载源码包,解压之后运行:python setup.py install即可. max下python libsvm安装使用:http://blog.csdn.n

基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型

一.卷积神经网络模型知识要点卷积卷积 1.卷积 2.池化 3.全连接 4.梯度下降法 5.softmax 本次就是用最简单的方法给大家讲解这些概念,因为具体的各种论文网上都有,连推导都有,所以本文主要就是给大家做个铺垫,如有错误请指正,相互学习共同进步. 二.卷积神经网络讲解 2.1卷积神经网络作用 大家应该知道大名鼎鼎的傅里叶变换,即一个波形,可以有不同的正弦函数和余弦函数进行叠加完成,卷积神经网络也是一样,可以认为一张图片是由各种不同特征的图片叠加而成的,所以它的作用是用来提取特定的特征,举

使用逻辑回归进行mnist手写字识别

1.引言 逻辑回归(LR)在分类问题中的应用十分广泛,它是一个基于概率的线性分类器,通过建立一个简单的输入层和输出层,即可实现对输入数据的有效分类.而该网络结构的主要参数只有两个,分别是权重和偏置,本文定义损耗函数为负对数,然后通过随机梯度下降算法(SGD)来对参数进行更新,并定义误差函数来衡量训练的阶段. 2.具体训练过程 在第3部分将会给出本文的完整python代码,其中用到的文件mnist.pkl.gz可以去网上下载,放到与python文件同一目录下面即可. 首先,定义一个基于object

基于PyTorch实现MNIST手写字识别

本篇不涉及模型原理,只是分享下代码.想要了解模型原理的可以去看网上很多大牛的博客. 目前代码实现了CNN和LSTM两个网络,整个代码分为四部分: Config:项目中涉及的参数: CNN:卷积神经网络结构: LSTM:长短期记忆网络结构: TrainProcess: 模型训练及评估,参数model控制训练何种模型(CNN or LSTM). 完整代码 -Talk is cheap, show me the code. # -*- coding: utf-8 -*- # @author: Awes

【转】机器学习教程 十四-利用tensorflow做手写数字识别

模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基于tensorflow来介绍和演示 请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 什么是tensorflow tensor意思是张量,flow是流. 张量原本是力学里的术语,表示弹性介质中各点应力状态.在数学中,张量表示的是一种广义的"数量",0阶张量

tensorflow笔记(四)之MNIST手写识别系列一

tensorflow笔记(四)之MNIST手写识别系列一 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7436310.html 前言 这篇博客将利用神经网络去训练MNIST数据集,通过学习到的模型去分类手写数字. 我会将本篇博客的jupyter notebook放在最后,方便你下载在线调试!推荐结合官方的tensorflow教程来看这个notebook! 1. MNIST数据集的导入 这里介绍一下MNIST,MNIST是在

77、tensorflow手写识别基础版本

''' Created on 2017年4月20日 @author: weizhen ''' #手写识别 from tensorflow.examples.tutorials.mnist import input_data mnist=input_data.read_data_sets("/path/to/MNIST_data/",one_hot=True) batch_size=100 xs,ys = mnist.train.next_batch(batch_size) #从trai

TensorFlow 入门之手写识别(MNIST) softmax算法

TensorFlow 入门之手写识别(MNIST) softmax算法 MNIST 卢富毓 softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算法 我们知道MNIST的每一张图片都表示一个数字,从0到9.我们希望得到给定图片代表每个数字的概率.比如说,我们的模型可能推测一张包含9的图片代表数字9的概率是80%但是判断它是8的概率是5%(因为8和9都有上半部分的小圆),然后给予它代表其他数字的概率更小的值. 这是一个使用softmax回归(sof

基于tensorflow的MNIST手写识别

这个例子,是学习tensorflow的人员通常会用到的,也是基本的学习曲线中的一环.我也是! 这个例子很简单,这里,就是简单的说下,不同的tensorflow版本,相关的接口函数,可能会有不一样哟.在TensorFlow的中文介绍文档中的内容,有些可能与你使用的tensorflow的版本不一致了,我这里用到的tensorflow的版本就有这个问题. 另外,还给大家说下,例子中的MNIST所用到的资源图片,在原始的官网上,估计很多人都下载不到了.我也提供一下下载地址. 我的tensorflow的版