个人笔记 感谢指正
手写数字识别
参考链接:https://blog.csdn.net/qq_32241189/article/details/80450741
1.导入包
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
2.导入数据集
mnist = input_data.read_data_sets('MNIST_data',one_hot=True)
#read_data_sets函数是专门下载MNIST数据集的,注意这里注意这里是one_hot,即标签不是一个值而是一个向量
#数据集分为train,validation,test三个数据集:
1.返回数据集train样本数 mnist.train.num_examples
2.返回数据集validation样本数 mnist.validation.num_examples
3.返回数据集test样本数 mnist.test.num_examples
4.使用mnist.train.images返回train数据集中的所有图片的像素值
5.使用mnist.train.labels返回train数据集中的所有图片的标签
6.使用mnist.train.next_batch()将数据输入神经网络
3.定义批次的大小
batch_size = 100
4.计算批次的数量
n_batch = mnist.train.num_examples // batch_size
5.定义变量的summary函数
def variables_summaries(var):
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var) #reduce_mean()函数可以进行多种均值操作,详见函数的定义
tf.summary.scalar('mean',mean) #设置标量,以在tensorboard中显示
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var-mean))) #计算标准差
tf.summary.scalar('stddev',stddev)
tf.summary.scalar('max',tf.reduce_max(var)) #求出最大值
tf.summary.scalar('min',tf.reduce_min(var)) #求出最小值
tf.summary.scalar('histogram',var) #直方图
6.定义初始化权重函数
def weight_variable(shape,name):
initial = tf.truncated_normal(shape,stddev=0.1) #产生服从正态分布的shape形状的tensor
return tf.Variable(initial,name=name) #将initial包裹为变量,即其中的值可以改变
#tf.truncated_normal()函数&