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 条评论
登录 后参与评论

相关文章

来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38110
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

5208
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3625
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2767
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7
来自专栏菩提树下的杨过

Flash/Flex学习笔记(23):运动学原理

先写一个公用的小球类Ball: package{ import flash.display.Sprite; //小球 类 public class B...

27110
来自专栏杨龙飞前端

scrollto 到指定位置

2894
来自专栏芋道源码1024

熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker

本文主要基于 Hystrix 1.5.X 版本 1. 概述 2. HystrixCircuitBreaker 3. HystrixCircuitBreaker....

5717
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2965
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

6906

扫码关注云+社区