用户mnist训练了一个模型,想用自己的图片进行测试,需要将自己的图片进行预处理为mnist需要的1*784的二维张量。

因为MNIST数据是28*28的黑底白字图像,而且输入时要将其拉直,也就是可以看成1*784的二维张量(张量的值在0~1之间),所以我们要对图片进行预处理操作,是图片能被网络识别。

引入的库import tensorflow as tf

import pylab

from PIL import Image

import numpy as np

以下为图片预处理过程img = Image.open('./mytestcode/666.jpg').convert('L') # 读取图片转成灰度格式

img = img.resize((28, 28)) # 更改图片大小  我的图片原始大小为:(366, 368)

npimg1 = np.array(img) # 转为numpy矩阵

flatten_img = npimg1.reshape(1, 784) # 转为mnist1*784二维张量

# 以下意思是把白色背景转为黑色背景,因为训练的都是黑色背景

new_flatten_img = (255-flatten_img)/255.0

new_flatten_img = new_flatten_img.reshape(1, 784) #      --------  该数据可直接被模型识别

print(new_flatten_img.shape)

以下为用训练好的模型识别过程tf.reset_default_graph()

# tf Graph Input

x = tf.placeholder(tf.float32, [None, 784]) # mnist data维度 28*28=784

y = tf.placeholder(tf.float32, [None, 10]) # 0-9 数字=> 10 classes

# Set model weights

W = tf.Variable(tf.random_normal([784, 10]))

b = tf.Variable(tf.zeros([10]))

# 构建模型

pred = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax分类

saver = tf.train.Saver()

model_path = "log/521model.ckpt"  # 这是我训练好模型的保存位置

with tf.Session() as sess:

# 初始化

sess.run(tf.global_variables_initializer())

# 从先前保存的模型恢复模型权重

saver.restore(sess, model_path)

output = tf.argmax(pred, 1)

outputval = sess.run(output, feed_dict={x: new_flatten_img})

print(outputval) # 为预测结果

#print(batch_xs.shape)

# 打印自己的图片

im = flatten_img

im = im.reshape(-1,28)

pylab.imshow(im)

pylab.show()

linux手写数字识别,mnist手写数字识别与图片预处理相关推荐

  1. 用Python实现BP神经网络识别MNIST手写数字数据集(带GUI)

    概述 计算机神经网络则是人工智能中最为基础的也是较为重要的部分,它使用深度学习的方式模拟了人的神经元的工作,是一种全新的计算方法.本文的目标就是通过学习神经网络的相关知识,了解并掌握BP神经网络的实现 ...

  2. 【原创】深度学习第7弹:小D识数字(MNIST手写数字集)

    目录 一.前文回顾 二.MNIST手写数字数据集 1.什么是MNIST手写数字数据集 2.MNIST手写数字数据集下载 三.重构神经网络 1.为什么要重构神经网络 2.重构什么样的神经网络 四.识别数 ...

  3. matlab文字bp识别,MNIST手写字体识别(CNN+BP两种实现)-Matlab程序

    [实例简介] MNIST手写字 Matlab程序,包含BP和CNN程序.不依赖任何库,包含MNIST数据,BP网络可达到98.3%的识别率,CNN可达到99%的识别率.CNN比较耗时,关于CNN的程序 ...

  4. 基于TensorFlow1.4.0的FNN全连接网络识别MNIST手写数据集

    MNIST手写数据集是所有新手入门必经的数据集,数据集比较简单,训练集为50000张手写图片,测试集为张手写图片10000,大小都为28*28,不用自己下载,直接从TensorFlow导入即可 后续随 ...

  5. Ubuntu18 Win10搭建Caffe训练识别mnist手写数字demo

    ubuntu 系统下的Caffe环境搭建 对于caffe的系统一般使用linux系统,当然也有windows版本的caffe,不过如果你一开始使用了windows下面的caffe,后面学习的过程中,会 ...

  6. Tensorflow之 CNN卷积神经网络的MNIST手写数字识别

    点击"阅读原文"直接打开[北京站 | GPU CUDA 进阶课程]报名链接 作者,周乘,华中科技大学电子与信息工程系在读. 前言 tensorflow中文社区对官方文档进行了完整翻 ...

  7. Pytorch实现mnist手写数字识别

    2020/6/29 Hey,突然想起来之前做的一个入门实验,用pytorch实现mnist手写数字识别.可以在这个基础上增加网络层数,或是尝试用不同的数据集,去实现不一样的功能. Mnist数据集如图 ...

  8. 用Python搭建2层神经网络实现mnist手写数字分类

    这是一个用python搭建2层NN(一个隐藏层)识别mnist手写数据集的示例 mnist.py文件提供了mnist数据集(6万张训练图,1万张测试图)的在线下载,每张图片是 28 ∗ 28 28*2 ...

  9. TensorflowSharp 简单使用与KNN识别MNIST流程

    机器学习是时下非常流行的话题,而Tensorflow是机器学习中最有名的工具包.TensorflowSharp是Tensorflow的C#语言表述.本文会对TensorflowSharp的使用进行一个 ...

最新文章

  1. Android ViewAnimationUtils (动画) 的使用
  2. php swoole 项目实战,Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)...
  3. 9008刷机模式写入超时刷机帮_刷机时没有成功,然后变成黑砖,usb接口直接变成未知设备~希望大神救助!...
  4. JavaScript逻辑运算符
  5. nutch代码分析第一篇——综述
  6. 解决Rigify报错:“Please specify a valid pivot bone position. Incorrect armature for type ‘basic_spine‘”
  7. 工作记忆的认知神经科学
  8. 函数式编程Haskell初探
  9. sudo su与su的区别
  10. 学习web渗透测试国内、国外在线网站
  11. python学习笔记之pyinstaller failed to execute script问题
  12. JAVA六大设计原则 和 23种设计模式
  13. Spring Web(第一部分)
  14. 微软求职攻略之笔试答疑
  15. 【微信小程序】不支持使用本地图片设置背景图片解决方法
  16. c语言读dbf文件格式,C语言直接读取FOXBASE的DBF文件
  17. ESP8266(ESP-12F) 第三方库使用 -- SparkFun_APDS9960 (手势识别)
  18. 360 重磅开源性能监控平台 ArgusAPM
  19. hd6305 GPRS 结构体 Server 对齐
  20. 小米手机怎么删除桌面计算机,小米手机如何删除桌面文件夹?

热门文章

  1. 【无标题】不出门怎么连接公司电脑,这6个工具让你不用来回跑。
  2. 小谈应该如何对抗网络小说
  3. GEE 01 -Sentinel2A 哨兵数据下载
  4. 查询sick编码器型号是否支持hiperface接口方法,软件支持所有带此接口sick编码器
  5. 广点通广告,oppo广告集成
  6. linux 设备直通,ProxmoxVE 开启硬件直通
  7. 正交,独立,相关及之间的关系
  8. 【ZYNQ】黑金教程_OV5640加LCD显示实验的Bug分享
  9. SWUST OJ4:迷宫问题
  10. 中年失业怎么办?可怕的并不是没有工作,而是没有钱