代码已上传至 Github —— mnist_all.py
下载MNIST数据集
以下有两种下载方式,如果链接失效可以搜索网上的资源
下载之后将其放在 mnist/data/ 文件夹下,目录结构如下
mnist
mnist_all.py
data/
train-images-idx3-ubyte.gz
train-labels-idx1-ubyte.gz
t10k-images-idx3-ubyte.gz
t10k-labels-idx1-ubyte.gz
完整代码
神经网络结构是简单的三层全连接神经网络,输入层+隐藏层+输出层
使用的优化方法
- 滑动平均
- 正则化
- 指数衰减法
使用 ReLU 激活函数
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
# 神经网络结构参数
INPUT_NODE = 784 # 输入层节点数。等于MNIST图片的像素
LAYER_NODE = 500 # 隐藏层节点数。只用一个隐藏层,含500个节点
OUTPUT_NODE = 10 # 输出层节点数。等于0~9对应的10个数字
# 优化方法参数
LEARNING_RATE_BASE = 0.8 # 基础学习率
LEARNING_RATE_DECAY = 0.99 # 学习率的衰减率
REGULARIZATION_RATE = 0.0001 # 正则化项在损失函数中的系数
MOVING_AVERAGE_DECAY = 0.99 # 滑动平均衰减率
# 训练参数
BATCH_SIZE = 100 # 一个训练batch中的图片数
TRAINING_STEPS = 30000 # 训练轮数
# 利用给定神经网络的输入和参数,返回前向传播结果
def</