# tensorflow实现手写数字识别

ok,那让我们愉快的学习吧。

[En]

This series is planned to try to reproduce the classic recommendation algorithm model in the field where I am looking for a job directly after completing handwriting recognition. Complete the reproduction and then re-supplement the theory.

1. 环境准备

2. tensorflow=1.13.1

3. 数据准备

from tensorflow.examples.tutorials.mnist import input_data

mnist.train.images.shape

(55000, 784)

import pylab
im = mnist.train.images[1]
im = im.reshape(-1,28)
pylab.imshow(im)
pylab.show()

[En]

Since the data is so small, let’s try linear regression first.

1. 构建模型和初始化参数

y = X W T + b y = \bold{X}\bold{W^T} + b y =X W T +b

[En]

Now let’s build the model and parameters.

[En]

For data, we need to specify its size first, but there is no real data, so we can feed it in at run time. The way to specify dimensions is to use placeholders:

tf.reset_default_graph()
x = tf.placeholder(tf.float32,[None,784])
y = tf.placeholder(tf.float32,[None,10])
x.shape,y.shape

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

pred = tf.nn.softmax(tf.matmul(x,W)+b)

1. 定义训练过程

cost = tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1))
learning_rate = 0.01

training_epochs = 25
batch_size = 100
display_step = 1

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())

for epoch in range(training_epochs):
avg_cost = 0
total_batch = int(mnist.train.num_examples/batch_size)
for i in range(total_batch):
batch_xs,batch_ys = mnist.train.next_batch(batch_size)
_, c = sess.run([optimizer,cost],feed_dict={x:batch_xs,y:batch_ys})
avg_cost += c/total_batch
if (epoch + 1)%display_step == 0:
print(f"Epoch:{epoch+1},cost={avg_cost:.9f}")
print("fnished")

correct_prediction = tf.equal(tf.argmax(pred,1),tf.argmax(y,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print("Accuracy:",accuracy.eval({x:mnist.test.images,y:mnist.test.labels}))

1. tensor训练时必须要在sess之内，否则不会真实运行
2. tensor取数据的时候是x.next_batch(batch_size)
3. sess.run([优化器，损失函数]，feed_dict={数据字典}) –> _,cost
4. 评估方式，method = tf.xx(), method.eval({数据字典})

ok,最后的运行结果是这样的。

Epoch:1,cost=7.546023723
Epoch:2,cost=4.171652060
Epoch:3,cost=2.972595831
Epoch:4,cost=2.377042001
Epoch:5,cost=2.016216151
Epoch:6,cost=1.779922282
Epoch:7,cost=1.617819570
Epoch:8,cost=1.489061758
Epoch:9,cost=1.393508704
Epoch:10,cost=1.312454587
Epoch:11,cost=1.255874819
Epoch:12,cost=1.191187488
Epoch:13,cost=1.152227032
Epoch:14,cost=1.099380152
Epoch:15,cost=1.076827528
Epoch:16,cost=1.038087001
Epoch:17,cost=1.014115727
Epoch:18,cost=0.983060481
Epoch:19,cost=0.969432110
Epoch:20,cost=0.936379928
Epoch:21,cost=0.926966454
Epoch:22,cost=0.899857285
Epoch:23,cost=0.897358320
Epoch:24,cost=0.867424971
Epoch:25,cost=0.862724741
fnished
Accuracy: 0.8281

Original: https://blog.csdn.net/qq_34271349/article/details/123557862
Author: 古承风
Title: tensorflow实现手写数字识别

(0)

### 大家都在看

• #### 【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘

文章目录 数据预处理任务 * 数据集成 数据变换 数据清洗 数据规约 主要处理函数 数据预处理任务 数据清洗：去掉数据中的噪声，纠正不一致 数据集成：将多个数据源合并成一致的数据存…

人工智能 2023年5月31日
0149
• #### 基于主成分分析PCA的人脸识别

经过本人复现分析，该篇博客代码不全且存在部分错误，思路仅供参考，望周知。经过完善的PCA理论分析：机器学习之PCA算法_一片叶子在深大的博客-CSDN博客经过完善的人脸识别实现：机…

人工智能 2023年7月17日
0137
• #### PyTorch中的张量是什么？它们与Numpy中的数组有什么区别

引言 本文将对PyTorch中的张量进行详细介绍，并比较其与Numpy中的数组的区别。我们将首先介绍张量的概念和算法原理，然后给出其数学公式推导和计算步骤。最后，我们将通过一个复杂…

人工智能 2024年1月4日
097
• #### 一文速学-Pandas数据分组操作方法详解+代码展示

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

人工智能 2023年6月19日
0122
• #### 【01李宏毅深度学习笔记2021春季】课程笔记Introduction&Regression(简介和回归)

01-1 Introduction &#x8BFE;&#x7A0B;&#x7F51;&#x5740;&#xFF1A;https://spee…

人工智能 2023年6月18日
0149
• #### （2022.4）Win10最新Anaconda安装Pytorch GPU环境(CUDA)教程（极其适合初学者）

目录 前言 一、CUDA的安装 1.确认自己的电脑是否可以使用CUDA 2.下载CUDA 二、cuDNN的安装 1.下载cuDNN 2.安装cuDNN 三、Anaconda环境的配…

人工智能 2023年6月12日
0115
• #### 高光谱知识(1)-高光谱成像技术的理解

系列文章目录 高光谱技术可以获得待观测目标或场景的连续单色光谱图像，并通过空间维(x, y)数据和光谱维(λ)数据共同组成三维观测数据立方体，从而为研究人员提供探测目标或场景中的每…

人工智能 2023年7月9日
0124
• #### 弹性网络是一种回归算法，它通过在损失函数中同时引入L1和L2正则化项，将岭回归和Lasso回归相结合。它可以在特征选择和过拟合控制之间进行权衡

弹性网络的问题介绍 弹性网络（Elastic Net）是一种用于回归分析的算法，它结合了岭回归（Ridge Regression）和Lasso回归（Lasso Regression…

人工智能 2023年12月31日
090
• #### opencv读取图片通道以及显示

人工智能 2023年5月28日
0129
• #### Pandas的排序和排名（Series， DataFrame） + groupby

根据条件对数据集排序（sorting）也是一种重要的内置运算。要对行或列索引进行排序（按字典顺序）， 可使用sort_index 方法， 它将返回一个已排序的新对象： 而DataF…

人工智能 2023年6月2日
0192
• #### Mediapipe三维实时人体关键点检测与追踪（一）

Mediapipe三维实时人体关键点检测与追踪 1.Mediapipe简介 2.Mediapipe姿态检测器 3.Mediapipe图像姿态检测 4.Mediapipe摄像头实时姿…

人工智能 2023年6月15日
0185
• #### OpenCV 并行计算函数 parallel_for_ 的使用

摘录： 在使用 OpenCV 的过程中，对图片的处理计算量还是很大的，所以在实施运行的程序中如何高效的计算会节省很多时间。现有的方法有很多，如 OpenMp, TBB, OpenC…

人工智能 2023年6月22日
0168
• #### 计算机视觉入门路线

给大家写了一个计算机视觉入门路线，这个路线一共分为十一步，每一步指明了学习内容，学习程度，学习方式和学习目的，并指明了各个内容的重难点。 欢迎关注公众号 CV技术指南 ，专注于计算…

人工智能 2023年5月28日
0141
• #### pandas按条件过滤_python – pandas：按多个条件过滤组？

我有一个如下所示的数据框： df = pd.DataFrame([ {‘id’: 123, ‘date’: ‘2016-…

人工智能 2023年7月8日
0163
• #### 《动手学深度学习+PyTorch》3.5图像分类数据集（Fashion-MNIST） 学习笔记

torchvision包，它是服务于PyTorch深度学习框架的，主要用来构建计算机视觉模型。torchvision主要由以下几部分构成：1. torchvision.datase…

人工智能 2023年6月22日
0157
• #### 如此优雅，4款 Python 自动数据分析神器真香啊

我们做数据分析，在第一次拿到数据集的时候，一般会用统计学或可视化方法来了解原始数据。比如了解列数、行数、取值分布、缺失值、列之间的相关关系等等，这个过程我们叫做 EDA（Explo…

人工智能 2023年7月7日
0132