TensorFlow 卷积神经网络手写数字识别数据集介绍

2022-02-19

,了解有关机器学习和深度学习的更多信息!

手写数字识别

下一步将以MNIST数据集为例,使用卷积层和池化层实现手写数字识别的卷积神经网络,并输出卷积和池化效果。

数据准备

MNIST数据集可以直接从网站的THE MNIST下载。

网址:

train–idx3-ubyte.gz:训练集图片

train–idx1-ubyte.gz:训练集列索引

p>

t10k–idx3-ubyte.gz: 测试集图片

t10k–idx1-ubyte.gz:测试集列索引

与加载MNIST数据库相关的,可以在程序运行时直接加载。

代码如下:

图片[1]-TensorFlow 卷积神经网络手写数字识别数据集介绍-唐朝资源网

from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as pyplot
#引入 MNIST 数据集
mnist = input_data.read_data_sets("/tmp/data/", one_hot=False)
#选取训练集中的第 1 个图像的矩阵
mnist_one=mnist.train.images[0]
#输出图片的维度,结果是:(784,)
print(mnist_one.shape)
#因为原始的数据是长度是 784 向量,需要转换成 28*28 的矩阵。
mnist_one_image=mnist_one.reshape((28,28))

#输出矩阵的维度
print(mnist_one_image.shape)
#使用 matplotlib 输出为图片
pyplot.imshow(mnist_one_image)
pyplot.show()

代码的输出是:

1.单个手写数字图片尺寸:

(784,)

2.转换为二维矩阵后的打印结果:

(28, 28)

3.使用输出作为图片

模型实现功能介绍:

tf.nn.(x, W, , =’SAME’)

为输入的 4D 数据 x 计算 2D 卷积。

参数x:

4维张量,每一维都是batch,,,.

[批次, , , ]

灰度图像只有2维来表示每个像素的值,彩色图像的每个像素都有3通道的RGB值,所以彩色图像被转换成3维的张量,即长、宽、和颜色通道的数量。并且由于每次训练都是大量的输入,所以将多个 3 维张量组合成 4 维张量。

参数w:

,因为是二维卷积,所以它的维度是:

[, , , ]

对应参数x,前三个参数是,,,对应x,最后一个参数是滤波器的输出通道数量。

参数:

长度为4的一维张量,对应参数x的4维中的步幅。

图片[2]-TensorFlow 卷积神经网络手写数字识别数据集介绍-唐朝资源网

参数:

p>

边缘填充方式,主要是“SAME”、“VALID”,一般使用“SAME”。

卷积层的简单封装

# 池化操作
def conv2d(x, W, b, strides=1):
# Conv2D wrapper, with bias and relu activation
x = tf.nn.conv2d(x, W, strides=[1, strides, strides, 1], padding='SAME')
x = tf.nn.bias_add(x, b)
return tf.nn.relu(x)

功能介绍:

tf.nn.(x, ksize, ,)

参数 x:

和参数x一样,是一个4维的张量,每个维度分别代表batch,,,,。

参数ksize:

池化内核的大小是一个长度为 4 的一维张量,对应于参数 x 的 4 个维度上的池化大小。

参数:

长度为4的一维张量,对应参数x的4维中的步长。

参数:

边缘填充方式,主要是“SAME”、“VALID”,一般使用“SAME”。

接下来,我们将使用如下结构来实现卷积神经网络:

在下一篇文章中,我们将使用这个卷积神经网络来实现。

本文来自,对深度学习感兴趣和喜爱的朋友,欢迎关注我们的网站!

分类:

技术要点:

相关文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片