输入层是28x28=784个节点
隐层500个结点
输出层10个结点
采用了L2正则化,指数衰减学习率,滑动平均优化后的结果正确率
98.3%左右
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
import os
import warnings
warnings.filterwarnings("ignore")
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3'
input_node = 784 #输入层节点数
output_node = 10 #输出层节点数
layer1_node = 500 # 隐层节点数
batch_size = 100 #每次读取的数据量
learning_rate_base = 0.8
learning_rate_decay = 0.99
regularization_rate = 0.0001
traing_steps = 10000 #训练轮数
moving_average_decay = 0.99 #平滑指数
def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2):
if avg_class is None:
layer1 = tf.compat.v1.nn.relu(tf.matmul(input_tensor, weights1) + biases1)
return tf.matmul(layer1, weights2) + biases2
else:
layer1 = tf.compat.v1.nn.relu(tf.matmul(input_tensor, avg_class.average(weights1))
+ avg_class.average(biases1)