tensorflow学习笔记1

TensorFlow中文社区

  1. 什么是TensorFlow?
  • TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。
  • “数据流图”用“节点”和“线”的有向图来描述数学计算。
  • “节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。
  • “线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
  1. TensorFlow基本用法
  • 使用图来表示计算任务,图中的节点表示操作,被称之为 op (operation).
  • 为了进行计算, 图必须在会话Session里被启动.
  • 会话将图的 op 分发到 CPU 或 GPU 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象; 在 C 和 C++ 语言中, 返回的 tensor 是 tensorflow::Tensor 实例.
  • 使用tensor表示数据(类型化的多维数组). 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels].
  • 通过变量Variable维护状态.
  • 使用feedfetch可以为任意的操作赋值或者从其中获取数据.
    在这里插入图片描述
  1. TensorFlow 程序由一个构建阶段和一个执行阶段组成,将定义运算与执行运算分离开来,先举个例子:

执行下面并不会输出10,而是输出tensor相关信息

import tensorflow as tf
a = tf.constant(10)
print(a)
# ==>Tensor("Const_16:0", shape=(), dtype=int32)

需要创建一个session,然后在session计算图,取出a的值

import tensorflow as tf
a = tf.constant(10)
sess = tf.Session()
sess.run(a)
# ==>10

1)阶段1——构建阶段:创建一张图,定义好图中的运算

  • TensorFlow Python 库有一个默认图 (default graph),常用,举例:
import tensorflow as tf

# 创建一个常量 op, 产生一个 1x2 矩阵. 这个 op 被作为一个节点加到默认图中.
# 构造器的返回值代表该常量 op 的返回值.
matrix1 = tf.constant([[3., 3.]])

# 创建另外一个常量 op, 产生一个 2x1 矩阵.
matrix2 = tf.constant([[2.],[2.]])

# 创建一个矩阵乘法 matmul op , 把 'matrix1' 和 'matrix2' 作为输入.
# 返回值 'product' 代表矩阵乘法的结果.
product = tf.matmul(matrix1, matrix2)

图中现在有三个节点, 两个 constant() op 和一个matmul() op. 为了真正进行矩阵相乘运算, 并得到矩阵乘法的 结果,
你必须在会话里启动这个图.

2)阶段2——执行阶段:使用session去执行图中的运算

  • 调用 sess 的 ‘run()’ 方法来执行矩阵乘法 op, 传入 ‘product’ 作为该方法的参数.
  • ‘product’ 代表了矩阵乘法op的输出, 传入它是向方法表明, 我们希望取回矩阵乘法op的输出.
  • 整个执行过程是自动化的, 会话负责传递 op 所需的全部输入. op 通常是并发执行的.
  • 函数调用 ‘run(product)’ 触发了图中三个 op (两个常量 op 和一个矩阵乘法 op) 的执行.
  • 返回值 ‘result’ 是一个 numpy ndarray 对象.
# 启动默认图.
sess = tf.Session()

result = sess.run(product)
print(result)
# ==> [[ 12.]]

# 任务完成, 关闭会话.
sess.close()
  • Session对象在使用完后需要关闭以释放资源. 除了显式调用 close 外, 也可以使用 “with” 代码块 来自动完成关闭动作.
# 等价的表述方式
with tf.Session() as sess:
  result = sess.run(product)
  print(result)
# 输出多个 tensor 值
with tf.Session() as sess:
  result = sess.run([product, matrix1, matrix2])
  print(result)
 # ==> [array([[12.]], dtype=float32), array([[3., 3.]], dtype=float32), array([[2.], [2.]], dtype=float32)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值