前一篇文章中写了mnist的两种训练方法,今天尝试自己搭建网络。这次,搭建了一个只含两层隐层和一层dropout层
本模型训练速度很快,且训练正确率达到了98%以上。
此外,本代码中还包含了保存模型和再次导入模型的内容。
具体代码如下:
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 16 10:02:18 2018
@author: czx
"""
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import os
mnist = input_data.read_data_sets("E:\桌面上的文件\MNIST", one_hot=True)
sess = tf.InteractiveSession()
#参数初始化
#产生一个符合正态分布的初始值
def weight_variable(shape):
initial = tf.truncated_normal(shape, mean=0, stddev=0.1)
#用于产生正态分布,shape为大小,mean为均值,stddev为标准差
return tf.Variable(initial)
def bias_variable(shape):
initial = tf.constant(0.1, shape=shape)
return tf.Variable(initial)
in_unit = 784
h1_unit = 300
h2_unit = 150
w1 = weight_variable([in_unit,h1_unit])
b1 = bias_variable([h1_unit])
w2 = weight_variable([h1_unit,h2_unit])
b2 = bias_variable([h2_unit])
w3 = tf.Variable(tf.zeros([h2_unit,10]))
b3 =