mnist数据包下载
https://pan.baidu.com/s/1c3QlQEW
mnist手写识别是机器学习领域中的Hello World任务。MNIST是由几万张28x28像素的手写数字组成,这些图片值包含灰度值信息。我们的任务就是对这些手写数字进行分类,识别出0-9。
首先是将28x28像素的图片展开为784x1维的矩阵,每一个像素点实际上是一个float,值越大图片像素点越亮。其实手写识别任务就是我们将784维的数据转换成10维的数据。这样从784中的每一个值都会和10中的每一个值相连,相连时会有一个权重,我们训练神经网络就是在训练这些权重。权重w实际上是一个784x10的矩阵。
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
#导入数据集,数据集中有55000个训练集样本,10000个测试集样本,5000个验证集样本
mnist = input_data.read_data_sets('F:/MNIST_data/',one_hot=True)
#[None, 784]表示有None(未知)张图片,每张图片是28*28像素的,展开的维度是784
x = tf.placeholder(tf.float32, [None, 784])
#w表示每一个特征值(像素点)会影响结果的权重,784是特征的维数,10代表有10类
W = tf.Variable(tf.zeros([784, 10]))