一文上手最新Tensorflow2.0系列(一)|常见的基本概念 您所在的位置:网站首页 胃这个字怎么读 一文上手最新Tensorflow2.0系列(一)|常见的基本概念

一文上手最新Tensorflow2.0系列(一)|常见的基本概念

2023-01-02 16:23| 来源: 网络整理| 查看: 265

⼀⽂上⼿最新Tensorflow2.0系列(⼀)|常见的基本概念

在本⽂中我们将对TensorFlow中的⼀些基本概念做⼀个简单的介绍,希望进⼀步了解这些概念及其实现的读者,可以参考官⽅的⽩⽪书(主要是

15年的)以及TensorFlow官⽹的⼀些⽂档。需要注意的是,这些资料中的部分内容对于TensorFlow2.0来说已经不适⽤了,读者在阅读的时候

需要留意。

1. TensorFlow常见基本概念

1.1 计算图

计算图(computation graph)是⼀个有向图(directed graph),是对TensorFlow中计算任务的抽象描述,也称为数据流图(data flow

graph)。TensorFlow使⽤计算图将计算表⽰成了独⽴的指令之间的依赖关系,在计算图中,节点表⽰计算单元(即⼀个独⽴的运算操作),图

中的边表⽰计算使⽤或产⽣的数据。在TensorFlow1.x版本中,当我们使⽤TensorFlow低级API进⾏编程时,我们⾸先需要定义好计算图,然后

创建TensorFlow会话(session)来执⾏计算图。

在TensorFlow1.x版本中采⽤的是静态图机制,我们需要预先定义好计算图,然后再可以反复的调⽤它(1.x版本有提供Eager Execution接⼝,

让⽤户可以使⽤动态图)。TensorFlow2.0则采⽤了动态图机制(1.x版本的Eager Execution在2.0中成为了默认的执⾏⽅式),我们可以像执

⾏普通的python程序⼀样执⾏TensorFlow的代码,⽽不再需要⾃⼰预先定义好静态图,调试代码也更加容易。TensorFlow1.x的静态图机制⼀

直被⽤户所诟病,调整为动态图机制是TensorFlow2.0⼀个最重⼤的改进,并且其也提供了⼀些⽅法来保留静态计算图的⼀些优势。

1.2 会话

在1.x版本中,会话(session)是客户端程序与TensorFlow系统进⾏交互的接⼝,我们定义好的计算图必须在会话中执⾏。当会话被创建时会初

始化⼀个空的图,客户端程序可以通过会话提供的“Extend”⽅法向这个图中添加新的节点来创建计算图,并通过“tf.Session”类提供

的“run”⽅法来执⾏计算图。⼤多数情况下我们只需要创建⼀次会话和计算图,之后我们可以在会话中反复执⾏整个计算图或者其中的某些⼦

图。

TensorFlow2.0采⽤了动态图机制,我们不需要在会话中执⾏计算图了,“tf.Session”类被放到了兼容模块“tensorflow.compat.v1”中,这

个模块⾥有完整的TensorFlow1.x的API。为了保留静态图的优势(例如性能优化和可移植性等),TensorFlow2.0提供了“tf.function”⽅

法,使⽤“tf.function”修饰的python函数,TensorFlow可以将其作为单个图来运⾏。

1.3 运算操作和运算核

计算图中的每⼀个节点就是⼀个运算操作(operation,通常简称op),每⼀个运算操作都有名称,并且代表了⼀种类型的抽象运算,例

如“MatMul”代表矩阵的乘法。每个运算操作都可以有⾃⼰的属性,但是所有的属性都必须被预先设置,或者能够在创建计算图时根据上下⽂推

断出来。 通过设置运算操作的属性可以让运算操作⽀持不同的张量(tensor)元素类型,例如让向量加法操作运算只接受浮点类型的张量。运算

核(kernel)是⼀个运算操作在某个具体的硬件(⽐如CPU或GPU)上的实现,在TensorFlow中可以通过注册机制加⼊新的运算操作或者为已

有的运算操作添加新的运算核。

TensorFlow的部分运算操作



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有