【TensorFlow 学习】TensorFlow 的一些基本概念

TensorFlow 的计算模型—计算图

TensorFlow 中的所有计算都会转化成计算图上的节点。

概念

1、Tensor:张量。——>多维数组
2、Flow:流。——>直观的表达张量之间通过计算相互转化的过程。
3、TensorFlow 是通过计算图的形式来表述计算的编程系统。
4、TensorFlow 的节点:表示一个计算。
5、TensorFlow 的边:表示计算之间的依赖关系。

使用

TensorFlow 的程序分为两个阶段:

  • 第一个阶段 :定义计算图中所有的计算
  • 第一个阶段 :执行计算

TensorFlow 的数据模型—张量

张量是 TensorFlow 中管理数据的形式。

概念

1、零阶张量:一个数,标量(scalar)。
2、第一阶张量:一个一维数组,向量(vector)。
3、第 n 阶张量:一个 n 维数组。

但是张量在 TensorFlow 中的实现不是直接采用数组形式, 而只是对TensorFlow 中计算结果的引用。
张量中并没有保存数,而是保存如何得到这些数字的计算过程。即是一个引用。

import tensorflow as tf;
# tf.constant 是一个计算,这个计算结果是一个张量,保存在变量 a 中
a = tf.constant([1.0,2.0],name="a")
b = tf.constant([3.0,4.0],name="b")
result = tf.add(a,b,name="add")
print result
# 打印出来的结果是:
# Tensor("add:0", shape=(2,), dtype=float32)

一个张量结构

       名字    维度   类型
Tensor(name, shape, type)
  • 名字 (name —> node:src_output):是一个张量的唯一标识符,并且也给出这个张量是如何计算出的。node 是节点的名称,src_output表示当前张量是节点的第几个输出。
  • 维度 (shape):描述一个张量的维度信息。shape=(2,)说明张量是一个一维数组,数组长度为 2。
  • 类型 (type):每个张量会有一个唯一的类型。参与运算的张量如果类型不匹配则会报错。

TensorFlow 有 14 中类型:
实数 (tf.float32tf.float64)
整数 (tf.int8tf.int16tf.int32tf.int64tf.uint8)
布尔型 (tf.bool)
复数 (tf.complex64tf.complex128)

使用

张量使用主要总结为两大类:

  • 第一类用途:使用张量记录并存储中间计算结果,a = tf.constant([1.0,2.0],name="a")
  • 第二类用途:当计算图构造完成之后,可以用来获取计算结果并得到真实数字。tf.Session().run(result)

TensorFlow 运行模型— 会话

1、使用**会话(session)**执行定义好的计算。
2、当所有计算完成之后需要关闭会话来使系统回收资源,不然可能会出现资源泄露。

使用

TensorFlow 中使用会话的模式一般有两种:
1、第一种模式:需要明确调用会话生成函数关闭会话函数。代码流程如下:

# 创建一个会话
sess = tf.Session();

# 使用这个创建好的会话来得到想要得到的运算的结果。
sess.run(...);

# 关闭会话释放资源
sess.close();

2、第二种模式:当程序因为异常退出时,sess.close()可能不会被执行而导致资源泄漏。为了解决异常退出时资源释放的问题,TensorFlow 可以使用 Python 的上下文管理器来使用会话。代码流程如下:

# 创建一个会话并通过 Python 上下文管理器来管理这个会话
with tf.Session() as sess:
	# 使用这个创建好的会话来计算想要的结果
	sess.run(...);

# 不需要再调用 Session.close() 函数来关闭会话
# 当上下文退出时会话关闭和释放资源会自动完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值