tensorflow程序-最简单softmax模型
2017-04-26 14:53
295 查看
#-*- coding=utf-8 -*- import numpy import tensorflow as tf import input_data #读取手写字体数据源 [None,28*28] mnist = input_data.read_data_sets("/home/tensorflow/tensorflow_workspace/data/", one_hot=True) x = tf.placeholder("float",[None,28*28]); #定义输入变量的大小[None,28*28] W = tf.Variable(tf.zeros([28*28,10])); #tf类型的一个变量。 W矩阵的大小为[28*28,10] b = tf.Variable(tf.zeros([10])); #tf类型的一个变量。 偏执的大小为[10] pre_y = tf.nn.softmax( tf.matmul(x,W) + b ); # pre_y: 存放预测的概率分布,大小为[None,10] rel_y = tf.placeholder("float",[None,10]); # rel_y: 存放实际的分布 cross_entropy = -tf.reduce_sum( rel_y * tf.log(pre_y) ); #交叉熵作为损失函数 learn_rate = 0.01 train_step = tf.train.GradientDescentOptimizer(learn_rate).minimize(cross_entropy); with tf.Session() as sess: sess.run( tf.initialize_all_variables() ); #以上的variables只有在该行后生效 #训练 for i in range(2000): #训练2000次 batch_x, batch_y = mnist.train.next_batch(100); #每次从样本中随机选择100个样本训练 sess.run( train_step, feed_dict = {x:batch_x, rel_y:batch_y} ); #训练模型 #评估 correct_prediction = tf.equal( tf.argmax(pre_y,1), tf.argmax(rel_y,1) ); accuracy = tf.reduce_mean( tf.cast(correct_prediction,"float") ); print sess.run(accuracy, feed_dict = {x:mnist.test.images, rel_y:mnist.test.labels});
函数:tf.argmax(pre_y,1)
表示将预测的结果集pre_y(形如:[[0,1],[1,0],[1,0],......])转换成最大值的id (形如:[1,0,0,......])
函数:tf.equal(tfvariable_a,tfvariable_b)
表示 判断tfvariable_a和tfvariable_b两个向量有哪些位置是相等的,最后返回:[True,False,False,......]
函数:tf.cast(correct_prediction,"float")
表示将:形如[False,False,True,......]的向量转换成float型向量如:[0,0,1,......]
最终返回测试正确率为:0.914
相关文章推荐
- Tensorflow简单复现softmax模型对于mnist数据集分类
- tensorflow程序-最简单的CNN模型
- 基于android手机的3G+GPS远程控制模型车工程-android手机编程1-简单通信程序
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- tensorflow学习-示例1(MNIST数据集合上的softmax分类模型)
- 利用TensorFlow训练简单的二分类神经网络模型
- 手写选择题识别-封装tensorflow模型-移植到android程序
- 一个WinForm程序配置信息的简单模型和维护工具——设计说明
- Tensorflow的Helloword:使用简单Softmax Regression模型来识别Mnist手写数字
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- Tensorflow深度学习之十五:VGG16模型的简单自主实现
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- 使用mrjob简单的编写mapreduce模型的程序
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- 一个WinForm程序配置信息的简单模型和维护工具——使用说明
- tensorflow实现softmax回归(softmax regression)——简单的MNIST识别(第一课)
- linux网络编程之posix 线程(一):线程模型、pthread 系列函数 和 简单多线程服务器端程序
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- Tensorflow模拟简单线性模型小栗子