mnist手写数字识别python_Mnist手写数字识别 Tensorflow

Mnist手写数字识别 Tensorflow

任务目标

了解mnist数据集

搭建和测试模型

编辑环境

操作系统:Win10

python版本:3.6

集成开发环境:pycharm

tensorflow版本:1.*

了解mnist数据集

mnist数据集:mnist数据集下载地址

??MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据.

??图片是以字节的形式进行存储, 我们需要把它们读取到 NumPy array 中, 以便训练和测试算法。

读取mnist数据集

mnist = input_data.read_data_sets("mnist_data", one_hot=True)

搭建和测试模型

代码

def getMnistModel(savemodel,is_train):

"""

:param savemodel: 模型保存路径

:param is_train: true为训练,false为测试模型

:return:None

"""

mnist = input_data.read_data_sets("mnist_data", one_hot=True)

with tf.variable_scope("data"):

x = tf.placeholder(tf.float32,shape=[None,784]) # 784=28*28*1 宽长为28,单通道图片

y_true = tf.placeholder(tf.int32,shape=[None,10]) # 10个类别

with tf.variable_scope("conv1"):

w_conv1 = tf.Variable(tf.random_normal([10,10,1,32])) # 10*10的卷积核 1个通道的输入图像 32个不同的卷积核,得到32个特征图

b_conv1 = tf.Variable(tf.constant(0.0,shape=[32]))

x_reshape = tf.reshape(x,[-1,28,28,1]) # n张 28*28 的单通道图片

conv1 = tf.nn.relu(tf.nn.conv2d(x_reshape,w_conv1,strides=[1,1,1,1],padding="SAME")+b_conv1) #[1, 1, 1, 1] 中间2个1,卷积每次滑动的步长 padding=‘SAME‘ 边缘自动补充

pool1 = tf.nn.max_pool(conv1,ksize=[1,2,2,1],strides=[1,2,2,1],padding="SAME") # 池化窗口为[1,2,2,1] 中间2个2,池化窗口每次滑动的步长 padding="SAME" 考虑边界,如果不够用 用0填充

with tf.variable_scope("conv2"):

w_conv2 = tf.Variable(tf.random_normal([10,10,32,64]))

b_conv2 = tf.Variable(tf.constant(0.0,shape=[64]))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mnist手写数字识别是一个经典的机器学习问题,通过训练模型来识别手写数字的应用。Python是一种流行的编程语言,通过Python开发图形用户界面(GUI)可以让用户更加友好地与程序交互。结合这两个方面,可以使用Python编写一个GUI界面用于mnist手写数字识别。 首先,我们可以使用Python中的Tkinter库或者PyQt等库来创建一个GUI界面,用户可以在界面上进行手写数字的输入。接着,我们将训练好的mnist手写数字识别模型加载到程序中,当用户在界面上绘制数字后,程序将自动识别用户输入的数字并显示在界面上。同时,还可以添加一些按钮用于清除输入或者重新识别等功能,增强用户体验。 在编写代码时,我们需要将mnist数据集作为训练集,使用深度学习框架如TensorFlow或者PyTorch来训练一个手写数字识别模型。训练好的模型可以保存为.h5或者.pb文件,在GUI程序中加载该模型进行预测。另外,为了提高识别准确率,可以使用数据增强、模型融合等技术进行优化。 此外,为了保证程序的性能,可以利用Python的并发编程或者多线程技术对图像识别过程进行加速。最后,通过打包工具将Python程序打包成可执行文件,用户可以直接双击运行程序,无需配置Python环境。 总的来说,通过Python GUI实现mnist手写数字识别可以让用户方便地进行数字识别,结合机器学习和图形界面编程的知识,可以开发出一款功能强大、易用的数字识别应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值