DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略


超帅与方盒
超帅与方盒 2022-09-19 14:23:57 50073
分类专栏: 资讯

DL框架之TensorFlow:TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略

目录

TensorFlow Core的简介

TensorFlow Core的安装

TensorFlow Core的使用方法

TensorBoard

会话 (Session)


TensorFlow Core的简介

      TensorFlow Core是低级别TensorFlow API

TensorFlow Core的安装

默认自带

 

TensorFlow Core的使用方法

参考文章:https://tensorflow.google.cn/guide/low_level_intro

您可以将 TensorFlow Core 程序看作由两个互相独立的部分组成:

  1. 构建计算图 (tf.Graph)。
  2. 运行计算图(使用 tf.Session)。

计算图是排列成一个图的一系列 TensorFlow 指令。图由两种类型的对象组成。

  • 操作(简称“op”):图的节点。操作描述了消耗和生成张量的计算。
  • 张量:图的边。它们代表将流经图的值。大多数 TensorFlow 函数会返回 tf.Tensors

重要提示tf.Tensors 不具有值,它们只是计算图中元素的手柄。

我们来构建一个简单的计算图。最基本的指令是一个常量。构建指令的 Python 函数将一个张量值作为输入值。生成的指令不需要输入值。它在运行时输出的是被传递给构造函数的值。我们可以创建如下所示的两个浮点数常量 a 和 b

  1. a = tf.constant(3.0, dtype=tf.float32)
  2. b = tf.constant(4.0) also tf.float32 implicitly
  3. total = a + b
  4. print(a)
  5. print(b)
  6. print(total)

打印语句会生成:

  1. Tensor("Const:0", shape=(), dtype=float32)
  2. Tensor("Const_1:0", shape=(), dtype=float32)
  3. Tensor("add:0", shape=(), dtype=float32)

请注意,打印张量并不会如您可能预期的那样输出值 3.04.0 和 7.0。上述语句只会构建计算图。这些 tf.Tensor对象仅代表将要运行的操作的结果。

图中的每个指令都拥有唯一的名称。这个名称不同于使用 Python 分配给相应对象的名称。张量是根据生成它们的指令命名的,后面跟着输出索引,如上文的 "add:0" 所示。

TensorBoard

TensorFlow 提供了一个名为 TensorBoard 的实用程序。TensorBoard 的诸多功能之一是将计算图可视化。您只需要使用几个简单的命令就能轻松完成此操作。

首先将计算图保存为 TensorBoard 摘要文件,具体操作如下所示:

  1. writer = tf.summary.FileWriter('.')
  2. writer.add_graph(tf.get_default_graph())

这将在当前目录中生成一个 event 文件,其名称格式如下:

events.out.tfevents.{timestamp}.{hostname}

现在,在新的终端中使用以下 shell 命令启动 TensorBoard:

tensorboard --logdir .

接下来,在您的浏览器中打开 TensorBoard 的图页面,您应该会看到与以下图形类似的图:

TensorBoard screenshot

要详细了解 TensorBoard 的计算图可视化工具,请参阅 TensorBoard:图的直观展示

会话 (Session)

要评估张量,需要实例化一个 tf.Session 对象(非正式名称为会话)。会话会封装 TensorFlow 运行时的状态,并运行 TensorFlow 操作。如果说 tf.Graph 像一个 .py 文件,那么 tf.Session 就像一个 python 可执行对象。

下面的代码会创建一个 tf.Session 对象,然后调用其 run 方法来评估我们在上文中创建的 total 张量:

  1. sess = tf.Session()
  2. print(sess.run(total))

当您使用 Session.run 请求输出节点时,TensorFlow 会回溯整个图,并流经提供了所请求的输出节点对应的输入值的所有节点。因此此指令会打印预期的值 7.0:

7.0

您可以将多个张量传递给 tf.Session.runrun 方法以透明方式处理元组或字典的任何组合,如下例所示:

print(sess.run({'ab':(a, b), 'total':total}))

它返回的结果拥有相同的布局结构:

{'total': 7.0, 'ab': (3.0, 4.0)}

在调用 tf.Session.run 期间,任何 tf.Tensor 都只有单个值。例如,以下代码调用 tf.random_uniform 来生成一个 tf.Tensor,后者会生成随机的三元素矢量(值位于 [0,1) 区间内):

  1. vec = tf.random_uniform(shape=(3,))
  2. out1 = vec + 1
  3. out2 = vec + 2
  4. print(sess.run(vec))
  5. print(sess.run(vec))
  6. print(sess.run((out1, out2)))

每次调用 run 时,结果都会显示不同的随机值,但在单个 run 期间(out1 和 out2 接收到相同的随机输入值),结果显示的值是一致的:

  1. [ 0.52917576  0.64076328  0.68353939]
  2. [ 0.66192627  0.89126778  0.06254101]
  3. (
  4.   array([ 1.88408756,  1.87149239,  1.84057522], dtype=float32),
  5.   array([ 2.88408756,  2.87149239,  2.84057522], dtype=float32)
  6. )

部分 TensorFlow 函数会返回 tf.Operations,而不是 tf.Tensors。对指令调用 run 的结果是 None。您运行指令是为了产生副作用,而不是为了检索一个值。这方面的例子包括稍后将演示的初始化训练操作。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=2958
赞同 0
评论 0 条
超帅与方盒L0
粉丝 0 发表 7 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2941
【软件正版化】软件正版化工作要点  2860
统信UOS试玩黑神话:悟空  2819
信刻光盘安全隔离与信息交换系统  2712
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1246
grub引导程序无法找到指定设备和分区  1213
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  163
点击报名 | 京东2025校招进校行程预告  162
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  160
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  157
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!