从零开始学TensorFlow【什么是TensorFlow?】下

简介: 笔记

三、Flow?介绍图和节点


我们将Flow翻译成中文:,所以现在是Tensor流

其实,在TensorFlow中,使用图 (graph) 来表示计算任务。其实TensorFlow默认会给我们一张空白的,一般我们会叫这个为”数据流图“。数据流图由有向边和节点组成,在使用TensorFlow的时候我们会在图中创建各种的节点,而Tensor会在这些节点中流通。所以,就叫做TensorFlow

那有人就会好奇,我们执行什么操作会创建节点呢?在TensorFlow中,节点的类型可以分为三种:

  • 存储节点:有状态的变量操作,通常用于存储模型参数
  • 计算节点:无状态的计算和控制操作,主要负责算法的逻辑或流程的控制
  • 数据节点:数据的占位符操作,用于描述图外输入的数据

看到这里的同学,可能就反应过来了:原来在上面创建的变量、常量和占位符在TensorFlow中都会生成一个节点!对于这类的操作Operation(行为)一般大家会简说成op

所以,op就是在TensorFlow中所执行的一个操作统称而已(有可能是创建变量的操作、也有可能是计算的操作)。在TensorFlow的常见的op有以下:

42.jpg                                                Tensorflow常见的op

其实说白了就是TensorFlow会给我们一张空白的数据流图,我们往这张数据流图填充(创建节点),从而实现想要效果。

  • 开局一张图,内容全靠编!43.jpg
                                                         数据流图的组成

我们来看看官方的给出数据流图的gif,加深下印象。

  • TensorFlow使用数据流图来表示计算任务
  • TensorFlow使用Tensor来表示数据,Tensor在数据流图中流动。
  • 在TensorFlow中”创建节点、运算“等行为统称为op

44.gif

                    数据流图


四、啥是session?


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

  • 注意:因为是有向边,所以只有等到之前的入度节点们的计算状态完成后,当前节点才能执行操作

说白了,就是当我们在编写代码的时候,实际上就是在将TensorFlow给我们的空白图描述成一张我们想要的图。但我们想要运行出图的结果,那就必须通过session来执行。

举个小例子:

import tensorflow as tf
# 创建数据流图:y = W * x + b,其中W和b为存储节点,x为数据节点。
x = tf.placeholder(tf.float32)
W = tf.Variable(1.0)
b = tf.Variable(1.0)
y = W * x + b
# =========如果不使用session来运行,那上面的代码只是一张图。我们通过session运行这张图,得到想要的结果
with tf.Session() as sess:
    tf.global_variables_initializer().run() # Operation.run
    fetch = y.eval(feed_dict={x: 3.0})      # Tensor.eval
    print(fetch)   # fetch = 1.0 * 3.0 + 1.0


4.1 Fetch是啥?


Fetch就时候可以在session.run的时候传入多个op(tensor),然后返回多个tensor(如果只传入一个tensor的话,那就是返回一个tensor)


4.2tensor.eval()和Operation.run()


有的同学在查阅资料的时候,发现可能调用的不是session.run,而是tensor.eval()和Operation.run()。其实,他们最后的调用的还是session.run。不同的是session.run可以一次返回多个tensor(通过Fetch)。

45.jpg                                              最后实际还是掉session.run


最后


曾经看到一段话总结得不错:

  • 使用 tensor 表示数据.
  • 使用图 (graph) 来表示计算任务.
  • 在会话(session)中运行图
  • 通过 变量 (Variable) 维护状态.

TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组.

这篇文章简单讲了TensorFlow是啥意思以及一些基础的概念。但我也只是简单以我的理解方式来说了一些常见概念。里头的知识点还是比较多的(比如创建变量的时候一般我们会指定哪些参数….),这些就交由大家去官网、博客、书籍去学习了。

我相信,只要了解了这些概念,那学习一定可以事半功倍!

目录
相关文章
|
TensorFlow 算法框架/工具
tensorflow 入门学习
tensorflow 入门学习
45 0
|
5月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow2基础
【8月更文挑战第10天】TensorFlow2基础。
55 12
|
8月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
Python深度学习基于Tensorflow(2)Tensorflow基础
Python深度学习基于Tensorflow(2)Tensorflow基础
65 3
|
机器学习/深度学习 TensorFlow API
TensorFlow2.0学习使用笔记
TensorFlow2.0学习使用笔记
|
机器学习/深度学习 人工智能 自然语言处理
Tensorflow学习笔记
Tensorflow学习笔记
195 0
|
存储 SQL 机器学习/深度学习
|
机器学习/深度学习 测试技术 TensorFlow
从零开始学TensorFlow
从零开始学TensorFlow 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 最近在学习TensorFlow的相关知识,了解了TensorFlow一些基础的知识,现在周末有空了,就写写一.
1832 0
|
机器学习/深度学习 Web App开发 物联网
|
机器学习/深度学习 算法框架/工具 C++
第3章 TensorFlow入门
第3章 TensorFlow入门 TensorFlow是Google创造的数值运算库,作为深度学习的底层使用。本章包括: TensorFlow介绍 如何用TensorFlow定义、编译并运算表达式 如何寻求帮助 注意:TensorFlow暂时不支持Windows,你可以用Docker或虚拟机。
1628 0