卷积神经网络CNN用于MNIST数据分类
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data #手写数字相关的数据包
# 载入数据集
mnist = input_data.read_data_sets("MNIST_data",one_hot=True) #载入数据,{数据集包路径,把标签转化为只有0和1的形式}
#定义变量,即每个批次的大小
batch_size = 100 #一次放100章图片进去
n_batch = mnist.train.num_examples // batch_size #计算一共有多少个批次;训练集数量(整除)一个批次大小
#初始化权值
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):
#x input tensor of shape '[batch, in_height, in_width, in_channels]'
#W filter / kernel tensor of shape [filter_height, filter_width, in_channels, out_channels]
#'strides[0] = strides[3] = 1', strides[1]代表x方向的步长,strides[2]代表y方向的步长
#padding:A 'string' frome: '"SAME"(补0), "VALID"(不补0)'
return tf.nn.conv2d(x,W,strides=[1