TensorFlow学习(一)入门

来源:互联网 发布:android安装 mysql 编辑:程序博客网 时间:2024/04/30 15:26

入门

import tensorflow as tfhello = tf.constant('hello,tensorflow!')sess = tf.Session()print (sess.run(hello))sess.close()

通过tf.constant建立一个常量节点op,再通过tf.Session启动TensorFlow的session,调用session的run方法。

import tensorflow as tfhello = tf.constant('hello,tensorflow!')with tf.Session() as sess:    print(sess.run(hello))

利用with代码块生成Session,可以限制作用域,不需要用close函数关闭会话。
PS:with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。

简单构建tf图

import tensorflow as tfx = tf.Variable(3)y = tf.Variable(5)z = tf.add(x,y)init = tf.global_variables_initializer()with tf.Session() as sess:    sess.run(init)    print(sess.run(z))

首先 使用TensorFlow 必须明白
1.使用图(graph)来表示计算任务
2.在会话(session)的上下文中执行图
3.使用张量(tensor)表示数据
4.通过变量(Variable)维护状态
5.使用feed 和fetch可以为任意操作赋值或从中获取数据

TensorFlow是一个编程系统,使用图来表示计算任务。图中的节点被称之为op,每个op获得一个或多个tensor执行计算,产生一个或多个tensor。为了进行计算,图必须在session里启动,session将图中的op分发到诸如CPU或GPU之类的设备上,同时提供执行op的方法,这些方法执行后,将产生的tensor返回。

TensorFlow程序分为组织阶段和执行阶段。组织阶段——op的执行步骤用图描述;执行阶段——使用会话执行图中的op

构建图的第一步,是创建源op(source op),源op不需要任何输入,例如hello word中的常量Constant。源op的输出被传递给其他op进行运算。
如:

a = tf.constant("hello,tensorflow!")

也可以利用变量来定义op,但是变量必须要进行初始化
如:

x = tf.Variable(3)y = tf.Variable(5)

显式初始化为

init = tf.global_variables_initializer()

运算op:tensorflow提供了许多数学运算,可以使用时查阅。

程序中存在三个op,变量op x,变量op y,以及加法op。session触发了op的传递过程,通常是并发执行的。调用sess的run()方法来执行加法op,传入z来作为run()的参数。

占位符及其输入

import tensorflow as tfa = tf.placeholder(tf.int16)b = tf.placeholder(tf.int16)mul = tf.mul(a,b)with tf.Session() as sess:    print ("a*b = ",sess.run(mul,feed_dict = {a: 2, b: 3}))

利用placeholder对数据初始化,虽然不像C那样严格声明,但在对数组提前初始化时,可以减少因为维度产生错误的几率
如:

matrix1 = tf.placeholder("float",[None,784])

定义变量时,没有指定数据类型,则默认为float32

机器学习的训练过程中含有大量循环,利用占位符为哈希键,创建一个Python字典对象,键值则是其代表的反馈tensor

feed_dict = {    images_placeholder: images_feed,    labels_placeholder: labels_feed,}

反馈字典的形式:

  feed_dict = {      <placeholder>: <tensor of values to be passed for placeholder>,      ....  }

在交互式环境下使用

import tensorflow as tfsess = tf.InteractiveSession()x = tf.Variable([1.0, 2.0])a = tf.constant([3.0, 3.0])# 使用初始化器 initializer op 的 run() 方法初始化 'x' x.initializer.run()# 增加一个减法 sub op, 从 'x' 减去 'a'. 运行减法 op, 输出结果 sub = tf.sub(x, a)print sub.eval()

前面的 Python 示例使用一个会话 Session 来 启动图, 并调用 Session.run() 方法执行操作.为了便于使用诸如 IPython 之类的 Python 交互环境, 可以使用 InteractiveSession 代替 Session 类, 使用 Tensor.eval() 和 Operation.run() 方法代替 Session.run(). 这样可以避免使用一个变量来持有会话。

0 0
原创粉丝点击