经过几天的学习,tensorflow 终于迈近一步了, minist 传说中的 tensorflow hello world。本人也是程序员出身,学过c++ 、c 等语言相对于这些语言,本人 认为 tensorflow 主要的难点是数学,因为毕业几年后大学数学早已还给老师了。
先上一个简单的 y=wx+b 例子
然后说下minist 入门几个要点
1 归一化函数 softmax
假设一个数组z,softmax 意思是z 中的元素的指数 与指数和 的比,并且所有比值之和 等于1
2 argmax 获取1 所在的索引
3. 交叉熵损失函数
真实的y 值与预测值的对数 的乘积
4. 图片信息
训练模型 是 y=w*x+b
为28x28=784 所有 输入的 x 定义 是 x=tf.placeholder(tf.float32,[None,784])
因为 每个像素有 784 有 10 种数字的可能 所有 权重 w 定义 为 W = tf.Variable(tf.zeros([784,10]))
偏移量 b = tf.Variable(tf.zeros([10]))
5 矩阵相乘
矩阵相乘 比如 a [1,2] b [[2,4],[1,2]] 两个相乘 需要 a 的列 (2)等于b 的行 结果是 1行(等于a 行)2列(等于b 列)
所有 预测的值 y=tf.nn.softmax(tf.matmul(x,w)+b)
这里注意是 tf.matmul(x,w) 不是 tf.matmul(w,x)
因为 输入 x 大概是 一个 [1,2,3,4,5,......784]
w大概是
根据矩阵的乘法,并且我们需要得到的是类似[1,2,3,4,5,6,7,8,9,10] 的值 就是 mnist 案例中的数据形式
总的代码如下: