TensorFlow学习笔记:3、TensorFlow基本概念

TensorFlow学习笔记:3、TensorFlow基本概念

3.1 计算图与operation

Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow 代表着张量从图象的一端流动到另一端的计算过程,是将复杂的数据结构传输至人工智能神经网中进行分析和处理的过程。

TensorFlow 使用图(Graphs)来表示计算任务,图中的节点称之为 op(operation),一个 op 可以获得 0 个或多个张量(Tensor),通过创建会话(Session)对象来执行计算,产生 0 个或多个Tensor。所以,TensorFlow 的工作模式分为以下两步:定义计算图和在session中运行计算图。

类比:一个神经元有多个输入,一个或者多个输出。这里的op可以看作神经元,tensor可以看作输入的数据。

In TensorFlow terminology, a Tensor is a typed multi-dimensional array. For example, you can represent a mini-batch of images as a 4-D array of floating point numbers with dimensions [batch, height, width,channels].

tensor是一个数组,每个数组元素是多维的,其实就是一个矩阵。

3.2 TensorFlow程序设计基本步骤

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

(1)1阶段:如何构建图?

  • 1.构建图从创建op开始。有些op的创建是不需要input的,比如Constant。这样的op被成为源op(source op)。
  • 2.在python中op对象是由op构造器(ops constructors)创建的。op构造器创建一个op对象时可以传递一个源op作为待构造op对象的输入。
  • 3.op对象被op构造器创建后是作为一个node加入到graph中的。TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点。这个默认图对许多程序来说已经足够用了。

总结:因为graph是由op对象组成的,所以构建图的过程其实就是创建op对象的过程,以及如果将这些个op对象连接起来(比如某个op对象作为另外某个op对象的输入)的过程。

(2)2阶段:图构建好了,如何执行?

  • 1.因为graph需要在session中启动。所以为了启动一个graph,第一步就是创建session对象。
  • 2.sessoin对象创建的时候如果不制定graph,则使用默认图(default graph)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

人工智能python的tensorflow基础

933
来自专栏iOSDevLog

day1-numpy练习

这是在numpy邮件列表,stackoverflow和numpy文档中收集的练习集合。 该系列的目标是为新老用户提供快速参考,同时为教学人员提供一系列练习。

651
来自专栏ACM算法日常

迷宫问题(BFS问题) - POJ 3984

本题是新加入我们的大虾Gabriel童鞋写的,他是一个刚入大学的大一新生,孺子如虎也,赞!

922
来自专栏mathor

小和问题

 在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。

854
来自专栏数据结构与算法

洛谷P3209 [HNOI2010]PLANAR(2-SAT)

题目描述 若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称G是平面图。判定一个图是否为平面图的问题是图论中的一个重要问题。现在假设你要...

3086
来自专栏温安适的blog

以回溯解高速公路重建与正序全排列

3476
来自专栏take time, save time

你所能用到的BMP格式介绍(一)

这些说明是我担任学校多媒体技术助教自己编写的实验说明,呕心沥血结合C++详细介绍BMP格式。  原理篇: 一、编码的意义。        让我们从一个简单的问题...

2827
来自专栏深度学习入门与实践

【深度学习系列】PaddlePaddle之数据预处理

  上篇文章讲了卷积神经网络的基本知识,本来这篇文章准备继续深入讲CNN的相关知识和手写CNN,但是有很多同学跟我发邮件或私信问我关于PaddlePaddle如...

2168
来自专栏自然语言处理

程序员眼中的统计学5

定义:若具有性质A的事件有m个,具有性质B的事件有n个,则具有性质A或性质B的事件有m+n个。

663
来自专栏Deep learning进阶路

OpenCV 学习日记(三)--- 常见数据类型

OpenCV基本数据类型: CvPoint,这些结构中最简单的一个,包含两个整型变量x和y。 CvPoint还有两个兄弟:CvPoint2D32f 和 CvPo...

1960

扫码关注云+社区