人工智能TensorFlow-构建图

基本使用

使用 TensorFlow, 你必须明白 TensorFlow:

  • 使用图 (graph) 来表示计算任务.
  • 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
  • 使用 tensor 表示数据.
  • 通过 变量 (Variable) 维护状态.
  • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.

计算图

TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op.

例如, 通常在构建阶段创建一个图来表示和训练神经网络, 然后在执行阶段反复执行图中的训练 op.

TensorFlow 支持 C, C++, Python 编程语言. 目前, TensorFlow 的 Python 库更加易用, 它提供了大量的辅助函数来简化构建图的工作, 这些函数尚未被 C 和 C++ 库支持.

三种语言的会话库 (session libraries) 是一致的.

构建图

构建图的第一步, 是创建源 op (source op). 源 op 不需要任何输入, 例如 常量 (Constant). 源 op 的输出被传递给其它 op 做运算.

Python 库中, op 构造器的返回值代表被构造出的 op 的输出, 这些返回值可以传递给其它 op 构造器作为输入.

TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点. 这个默认图对 许多程序来说已经足够用了. 阅读 Graph 类 文档 来了解如何管理多个图.


示例

# 导入tensorflow模块
import tensorflow as tf
# constant表示常量op
# 定义一个一行两列的矩阵
m1 = tf.constant([[3, 3]])
# 创建一个两行一列的矩阵,也是一个常量的op
m2 = tf.constant([[2], [3]])
# 创建一个矩阵乘法的op,将m1与m2传入
product = tf.matmul(m1, m2)

print(product)
Tensor("MatMul:0", shape=(1, 1), dtype=int32)

可以看出,输出的结果与在python中的计算结果是不一样的

这里的product是一个Tensor

# 定义一个会话,启动默认的图
sess = tf.Session()
# 调用sess的run方法,来调用乘法op,之后依次触发了图中的3个op
result = sess.run(product)
# 使用完会话以后要记得关闭
sess.close()

print(result)
[[15]]

可以看出,当调用了sess.run()后,才会执行相关联的op,最终得出一个输出结果

一个简洁的定义会话的方式

with tf.Session() as sess:
    result = sess.run(product)
    print(result)
[[15]]

关键字with后面定义一个对象,将下面的代码块运行完后,将释放该对象,也就是将Session自动关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值