mnist手写数字库实现 有详细解释
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 9 21:18:20 2018
@author: 11040
"""
import numpy as np
import tensorflow as tf
#下载并载入mnist手写数字库
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('D:\Administrator\spyder-py3\mnist_data',one_hot=True)
# one_hot独热码的编码形式
#0,1,2,3,4,5,6,7,8,9的十位数字
#0:1000000000
#1:0100000000
#2:0010000000
print("MNIST ready")
sess = tf.InteractiveSession()
# 定义好初始化函数以便重复使用。给权重制造一些随机噪声来打破完全对称,使用截断的正态分布,标准差设为0.1,
# 同时因为使用relu,也给偏执增加一些小的正值(0.1)用来避免死亡节点(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') # 参数分别指定了卷积核的尺寸、多少个channel、filter的个数即产生特征图的个数
# 2x2最大池化,即将一个2x2的像素块降为1x1的像素。最大池化会