深度学习神经网络 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

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda