记得在当前工程中新建一个MNIST_data文件夹和model文件夹
终端cd到当前工程路径
train.py代码
import tensorflow as tf
#导入数据
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
#去除加速sse的warning
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
#x为训练图像,y_为训练图像标签
x = tf.placeholder(tf.float32, shape=[None, 784])
y_ = tf.placeholder(tf.float32, shape=[None, 10])
#权重偏置初始化
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
#权重在初始化时应该加入少量的噪声来打破对称性以及避免0梯度,避免神经元节点输出恒为0的问题(dead neurons)
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial)
def bias_variable(shape):
initial = tf.constant(0.1, shape=shape)
return tf.Variable(initial)
def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
def max_pool_2x2(x):
return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
strides=[1, 2, 2, 1], padding='SAME')
#第一层卷积层,32个卷积核去分别关注32个特征
W_conv1 = weight_variab