深度学习神经网络 MNIST手写数据辨识 3 应用接口

2024-04-07 20:58

本文主要是介绍深度学习神经网络 MNIST手写数据辨识 3 应用接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

整理一下,形成一个应用程序。

首先仍然是导入各种包:

from PIL import Image
import numpy as np
import tensorflow as tf
import mnist_forward2
import mnist_backward2
import mnist_test2
def restore_model1(testPicArr):
#创建一个默认图,在该图中执行以下操作

第一个函数是恢复模型的函数。已经介绍过很多次了,这里再简单讲解一下。

构建计算图的输入输出,这里x代表输入数据,y代表输出数据,preValue相当于把输出y中数据最高的位的坐标得到(概率最大值)

        x = tf.placeholder(tf.float32, [None, mnist_forward2.INPUT_NODE])y = mnist_forward2.forward(x, None)preValue = tf.argmax(y, 1) #得到概率最大的预测值

然后恢复滑动平均值参数,并开始训练会话。注意会话中得到概率最大值的函数:

preValue = sess.run(preValue, feed_dict={x:testPicArr})

它会执行整个计算图。

第二个函数是用来初始化图像的程序:

def pre_pic(picName):

没什么可说的,粘贴如下:

    img = Image.open(picName)reIm = img.resize((28,28),Image.ANTIALIAS)im_arr = np.array(reIm.convert('L'))threshold = 50for i in range(28):for j in range(28):im_arr[i][j] = 255 - im_arr[i][j]if(im_arr[i][j]<threshold):im_arr[i][j] = 0else:im_arr[i][j] = 255nm_arr = im_arr.reshape([1,784])nm_arr = nm_arr.astype(np.float32)img_ready = np.multiply(nm_arr,1.0/255.0)return img_ready

这里的reIm = img.resize((28,28),Image.ANTIALIAS)表示变为大小28*28,并启动反混叠插值。
模式“L” 为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白。注意输入数据的维度,[1,784] ,表示1行784列.

第三个函数是调用我们之前写的两个函数,首先输入图像测试路径,然后预处理,之后恢复会话并测试。

    for i in range(testNum):testPic = input("the path of test picture:")testPicArr = pre_pic(testPic)preValue = restore_model1(testPicArr)print("The prediction number is:" + str(preValue))

我们上传几张自己写的图片:

测试结果都是正确的。

这篇关于深度学习神经网络 MNIST手写数据辨识 3 应用接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883658

相关文章

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档