TensorFlow实现MNIST的卷积神经网络

这篇博客介绍了如何用TensorFlow搭建一个卷积神经网络(CNN)模型,以解决MNIST数据集的分类问题。文章详细阐述了从数据预处理到构建模型的步骤,包括设置输入数据、初始化权重、定义网络结构、应用dropout以及定义损失函数和训练过程。最终,模型经过训练得到了预期的结果。
摘要由CSDN通过智能技术生成

在此篇博客中我们将学习使用TensorFlow搭建一个卷积神经网络(CNN)模型,并使用它来训练MNIST数据集。

构建一个CNN模型需要以下几个步骤:

(1) 定义输入数据,并预处理数据。这里我们首先读取MNIST数据集,并分别得到训练集的图片和标签的矩阵,以及测试集的图片和标签矩阵。代码如下:

import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data

mnist=input_data.read_data_sets('MNIST_data',one_hot=True)
trX,trY,teX,teY=mnist.train.images,mnist.train.labels,mnist.test.images,mnist.test.labels

接着需要对数据进行处理,我们要把trX和trY的shape变成[-1,28,28,1]这里-1表示不需要考虑输入图像的数量,28×28是图像的长宽像素值,1表示图像的通道数(这里是黑白图像所以为1通道)。代码如下:

trX=trX.reshape(-1,28,28,1)
teX=teX.reshape(-1,28,28,1)

X=tf.placeholder('float',[None,28,28,1])
Y=tf.placeholder('float',[None,10])

(2) 初始化权重与定义网络。这里我们将搭建一个拥有3个卷基层和三个池化层,随后接1个全连接层和1个输出层的卷积神经网络。代码如下ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值