TensorFlow 简明教程(python版)
2016-04-02 23:35
656 查看
TensorFlow 简明教程(python版)
*Posted on April 2nd, 2016, by REN Chuangjie定义变量
为了使用tensorflow,首先我们需要导入它import tensorflow as tf
对于符号变量,我们新建一个
x = tf.placeholder(tf.float32, [None, 784])
这里x并不是一个特定的值,只是一个占位符,后面我们需要用tensorflow进行计算式,我们会把它作为输入
在模型中,我们需要weights权重和biases偏置,这里就用Variable来处理定义,Variable可以在整个计算过程中modified
w = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10]))
在新建Variable的同时,我们也初始化了它,然后
y = tf.nn.softmax(tf.matmul(x, w) + b)
这样我们就成功的实现了我们的模型
训练
我们用cross-entropy作为我们的cost function
H_{y’}(y) = -\sum_i y’_i \log(y_i)
y就是我们预测的概率分布,y’是真实的概率分布
为了实现交叉熵,我们需要一个新的占位符来作为正确答案的输入
y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = -tf.reducen_sum(y_ * tf.log(y))
通过梯度下降来实现优化模型
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy)
我们使用这个模型之前,最后一件我们需要做的事是
init = tf.initialize_all_variables() with tf.Session() as sess: sess.run(init)
现在,我能可以训练1000次这个模型了,☺️
for i in xrange(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict = {x: batch_xs, y_: batch_ys})
使用随机数据的小batch就称为随机训练
模型评分
首先,我们对比真实的y_和模型所得y之间正确的个数有多少correct_prediction = tf.equal(tf.argmax(y, 1), tf.agrmax(y_, 1))
这个会返回一个boolean列表,比如[True, False, True, True]
accuracy = tf.reduce_mean(tf.cast(correc_prediction, tf.float32)) print (sess.run(accuracy, feed_dict = {x: mnist.test.images, y_: minst.test.labels}))
最后就通过以上计算得到准确率
链接
TensorFlow相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法