Tensorflow学习:卷积神经网络CNN应用于手写数字识别(MNIST数据集分类)
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNST_data", one_hot=True)
batch_size = 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):
'''conv2d:是一个二维的卷积操作,
x:输入的tensor(数据),数据的形状[batch(批次的大小:100),in_height(长:输入层的长),
in_width(宽:输入层的宽),in_channels(通道数,如果是黑白的照片就是1,如果是彩色的照片就是2)]
W:滤波器或者说是卷积核,也是一个tensor(数据),形状[filter_height(滤波器的长),filter_width(滤波器的宽),
in_channels(输入通道数),out_channels](输出通道数)
strides:步长,strides[0]=strides[3]=1,strides[1]:代表x方向的步长,strides[2]代表y方向的步长
padding:same,valid'''
return tf.nn.conv2d(x, W, strides=[1, 1, 1,