首先,tensorfolw 见名知义。tensor:张量--多维度矩阵,flow-计算流动。合起来理解就是张量在计算模型上的流动。
其次,在官方文档看了一部分之后,此处对几个常出现的语句进行解析
softmax回归:
实现部分:
x=tf.placeholder("float",[None.784])
#此处的x只是一个占位符,代表把输入的图像转称784维的向量,因为输入图像是28X28的
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
#权值和偏置:权值的维度是784X10得到证据值向量。b偏置是是一个10维的,是为了方便和w相加
y = tf.nn.softmax(tf.matmul(x,W) + b)
#实现模型的线性回归,输出的是概率,也就是对应的是哪个数字的概率(预测分布)
y_ = tf.placeholder("float", [None,10])
#设置占位符在存放图片的正确label值
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
#交叉熵,其中y_表示实际分布(one-hot vector 表示的图片label),y表示预测分布。此主要通过计算张量所有元素综合,是为了更好的地描述模型
#........接下来就是梯度下降
#解释下那个循环端代码
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
#随进抓取100个批处理点,每次执行train_step时候,将之前选择的数据,填充至所设置的占位符中,作为模型的输入。
#........模型评估这个地方比较容易看懂,就不解释了。就是通过一个返回的一组布尔值转化成浮点数,然后取平均值。