详解Python使用tensorflow入门指南


Posted in Python onFebruary 09, 2018

TensorFlow是Google公司2015年11月开源的第二代深度学习框架,是第一代框架DistBelief的改进版本.

TensorFlow支持python和c/c++语言, 可以在cpu或gpu上进行运算, 支持使用virtualenv或docker打包发布.

定义变量

为了使用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并不是一个纯粹的神经网络框架, 而是使用数据流图进行数值分析的框架.

TensorFlow使用有向图(graph)表示一个计算任务.图的节点称为ops(operations)表示对数据的处理,图的边flow 描述数据的流向.

该框架计算过程就是处理tensor组成的流. 这也是TensorFlow名称的来源.

TensorFlow使用tensor表示数据. tensor意为张量即高维数组,在python中使用numpy.ndarray表示.

TensorFlow使用Session执行图, 使用Variable维护状态.tf.constant是只能输出的ops, 常用作数据源.

下面我们构建一个只有两个constant做输入, 然后进行矩阵乘的简单图:

from tensorflow import Session, device, constant, matmul

'''构建一个只有两个constant做输入, 然后进行矩阵乘的简单图:'''

#如果不使用with session()语句, 需要手动执行session.close().
#with device设备指定了执行计算的设备:
#  "/cpu:0": 机器的 CPU.
#  "/gpu:0": 机器的第一个 GPU, 如果有的话.
#  "/gpu:1": 机器的第二个 GPU, 以此类推.

with Session() as session: # 创建执行图的上下文
  with device('/cpu:0'): # 指定运算设备
    mat1 = constant([[3, 3]]) # 创建源节点
    mat2 = constant([[2], [2]])
    product = matmul(mat1, mat2) # 指定节点的前置节点, 创建图
    result = session.run(product) # 执行计算
    print(result)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中关于日期时间处理的问答集锦
Mar 08 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
python实现数据写入excel表格
Mar 25 Python
详解django三种文件下载方式
Apr 06 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
一些关于python 装饰器的个人理解
Aug 31 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 #Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 #Python
Python+PIL实现支付宝AR红包
Feb 09 #Python
Python 实现12306登录功能实例代码
Feb 09 #Python
Python多层装饰器用法实例分析
Feb 09 #Python
理论讲解python多进程并发编程
Feb 09 #Python
Python装饰器(decorator)定义与用法详解
Feb 09 #Python
You might like
PHP 模拟$_PUT实现代码
2010/03/15 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
angular2使用简单介绍
2016/03/01 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
python交互式图形编程实例(一)
2017/11/17 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
美国玩具公司:U.S.Toy
2018/05/19 全球购物
值传递还是引用传递
2015/02/08 面试题
十佳大学生事迹材料
2014/01/29 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
师范生求职信
2014/06/14 职场文书
会计人员演讲稿
2014/09/11 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技