TENSORFLOW官方文档-MNIST机器学习入门-训练模型
2017-01-09 19:34
323 查看
设置模型
1.为了计算交叉熵,需要添加一个新的占位符y_用于输入正确值:y_ = tf.placeholder(“float”, [None,10])
2.交叉熵计算代码:
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
交叉熵:
(1)非负性
(2)当预测值接近真实值时,代价函数趋近于0。
(3)克服方差代价函数更新权重过慢的问题。**当误差大时,权重更新快;当误差小时,权重更新慢。
reduce_sum: 计算tensor的所有元素的总和。
3.tensorflow可以自动地使用反响传播算法来有效确定变量是如何影响你想要最小化的那个成本值的。然后用所选择的优化算法来不断地修改变量以降低成本。
使tensorflow用梯度下降算法以0.01的学习速率最小化交叉熵。
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
训练模型
1.添加一个初始化创建的变量的操作init=tf.initialize_all_variables()
2.在一个session里启动模型,并且初始化变量:
sess=tf.Session()
sess.run(init)
3.训练模型
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个处理数据点,用这些数据点作为参数替换之前的x, y_ 占位符来运行train_step。
评估模型
1.找出那些预测正确的标签,这行代码会给我们一组布尔值。correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))、
tf.argmax 是一个非常有用的函数,它能给出某个tensor对象在某一维上的其数据最大值所在的索引值。由于标签向量是由0,1组成,因此最大值1所在的索引位置就是类别标签,比如tf.argmax(y,1)返回的是模型对于任一输入x预测到的标签值,而 tf.argmax(y_,1) 代表正确的标签,我们可以用 tf.equal 来检测我们的预测是否真实标签匹配(索引位置一样表示匹配)。
2.把布尔值转换成浮点数,然后取平均值,来正确预测项的比例。
例如,[True, False, True, True] 会变成 [1,0,1,1] ,取平均值后得到 0.75。
accuracy = tf.reduce_mean(tf.cast(correct_prediction, “float”))
3.打印出正确率,大约为91%。
print sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})
相关文章推荐
- TENSORFLOW官方文档-MNIST机器学习入门-建立模型
- tensorflow学习笔记十六:tensorflow官方文档学习 如何训练Inception v3模型最后一层
- TENSORFLOW官方文档-MNIST机器学习入门-数据集准备
- MXNet官方文档教程(7):训练和推断模型
- MXNet官方文档中文版教程(8):使用预训练模型预测
- TensorFlow官方文档学习|TensorFlow运作方式入门
- TensorFlow官方文档疑问: 在达到最大训练迭代数的时候如何清理关闭线程?
- 深度学习入门篇--手把手教你用 TensorFlow 训练模型
- tensorflow学习笔记十六:tensorflow官方文档学习 Image Recognition(Inception v3模型)
- MXNet官方文档教程(4):使用预训练好的模型
- tensorflow官方教程:重新训练模型的最后一层,以应对新分类
- Sencha Touch 2 官方文档翻译之 Using Models(使用数据模型)
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
- Activity的生命周期模型在Google提供的官方文档上有比较详细的一个图示
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
- Hibernate官方文档翻译-(第二章,入门)
- jackson官方快速入门文档
- Asp.Net MVC4.0 官方教程 入门指南之九--为模型添加验证