前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >TensorFlow的核心概念:张量和计算图

TensorFlow的核心概念:张量和计算图

作者头像
lyhue1991
发布于 2020-07-20 03:49:16
发布于 2020-07-20 03:49:16
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

请允许我引用官网上的这段话来介绍TensorFlow。

TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域

TensorFlow的主要优点:

  • 灵活性:支持底层数值计算,支持自定义操作符
  • 可移植性:从服务器到PC到手机,从CPU到GPU到TPU
  • 分布式计算:分布式并行计算,可指定操作符对应计算设备

HelloWorld简单范例

使用TensorFlow的基本步骤一般为:定义计算图,执行计算图,查看计算图(可选)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tensorflow as tf

#定义计算图
g = tf.Graph()
with g.as_default():
    hello = tf.constant('hello',name = 'hello')
    world = tf.constant('world',name = 'world')
    helloworld = tf.string_join([hello,world],name = 'join',separator=' ')

#执行计算图
with tf.Session(graph = g) as sess:
    print(sess.run(fetches = helloworld,feed_dict={}))

#查看计算图
with tf.summary.FileWriter('F:\OneDrive\my_graph') as writer:
    writer.add_graph(g)

#1,在命令行中切换到 F:/OneDrive 
#2,运行 tensorboard --logdir='my_graph'
#3, 打开浏览器输入地址http://localhost:6006

张量数据结构

TensorFlow的数据结构是张量Tensor。Tensor即多维数组。Tensor和numpy中的ndarray很类似。

1,Tensor的维度 rank

标量为0维张量,向量为1维张量,矩阵为2维张量。

彩色图像有rgb三个通道,可以表示为3维张量。

视频还有时间维,可以表示为4维张量。

2,Tensor的形状 shape

Tensor在各个维度的长度可以用一个向量表示,称为Tensor的形状shape。

shape的元素数量和Tensor的维度相等。

3,Tensor的数据类型 dtype

Tensor的数据类型dtype和numpy中的array的数据类型dtype几乎一一对应。

不过Tensor中的字符串数据类型只能为np.string即字节byte类型,不能为"Unicode"

计算图算法语言

计算图由节点(nodes)和线(edges)组成。

节点表示操作符Operator,线表示计算间的依赖。

实线表示有数据传递依赖,传递的数据即张量。

虚线通常可以表示控制依赖,即执行先后顺序。

为什么TensorFlow要采用计算图来表达算法呢?

主要原因是计算图的编程模型能够让TensorFlow实现分布式并行计算。

下面我们来看一个简单的计算图的示例:计算 y = a*x^2 + b*x + c

并说明计算图和分布式并行计算之间的关联。

这个计算用纯Python语言,可能只要2到3行就能够实现。但表达成计算图,我们却要10多行代码。为啥TensorFlow还要用计算图来表达算法呢?当然计算图会非常直观,但主要原因是为了分布式并行计算。在纯Python语言的实现中我们只能由一个机器同时完成上述计算。计算顺序可能是这样的。

  • step1:x_square = x^2
  • step2:a_x_square = a*x^2
  • step3: b_x = b*x
  • step4:b_x_plus_c = b_x +c
  • step5:y = a_x_square + b_x_plus_c

但实际上,step3,step4并不依赖于step1,step2。

按照如下顺序:step3-->step4-->step1-->step2-->step5来计算也是可以的。

实际上我们完全可以让step3,step4和step1,step2这两组计算同时由不同的机器进行。

表达成计算图后,计算之间的依赖和独立关系变得非常清晰。

TensorFlow可以将每个操作符Operator的任务分配给不同的机器,从而实现分布式并行计算。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法美食屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TensorFlow2.X学习笔记(1)--TensorFlow核心概念
TensorFlow™ 是一个采用 数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
MiChong
2020/09/24
9390
tensorflow(一)windows 10 python3.6安装tensorflow1.4与基本概念解读
一.安装 目前用了tensorflow、deeplearning4j两个深度学习框架, tensorflow 之前一直支持到python 3.5,目前以更新到3.6,故安装最新版体验使用。
学到老
2018/03/19
1.6K0
tensorflow(一)windows 10 python3.6安装tensorflow1.4与基本概念解读
TensorFlow张量知识
皮大大
2023/08/23
3130
TensorFlow张量知识
20分钟了解TensorFlow基础
作者 | Chidume Nnamdi ???? 翻译 | linlh、余杭、通夜 编辑 | 王立鱼、约翰逊·李加薪 原文链接: https://blog.bitsrc.io/learn-t
AI研习社
2019/05/31
9110
深度学习--TensorFlow基础概念解析(从张量到计算图)
大家好,今天就说说TensorFlow的2个概念张量和计算图,首先先来了解一下张量吧
china马斯克
2025/03/15
1540
深度学习-TensorFlow张量和常用函数
在tf.random.truncated_normal中如果随机数的取值在(u-2\sigma, u+2\sigma)之外,则重新生成,保证值在均值附近
皮大大
2023/08/25
4670
TensorFlow应用实战 | TensorFlow基础知识
hw = tf.constant("Hello World! Mtianyan love TensorFlow!")
用户1332428
2018/07/30
9950
TensorFlow应用实战 |  TensorFlow基础知识
tensorflow(一)windows 10 64位安装tensorflow1.4与基本概念解读tf.global_variables_initializer
一.安装 目前用了tensorflow、deeplearning4j两个深度学习框架, tensorflow 之前一直支持到python 3.5,目前以更新到3.6,故安装最新版体验使用。 慢
学到老
2018/03/19
9090
tensorflow(一)windows 10 64位安装tensorflow1.4与基本概念解读tf.global_variables_initializer
TensorFlow修炼之道(3)——计算图和会话(Graph&Session)
在计算图中,节点表示计算单位,边表示计算用到和产生的数据。 例如,在TensorFlow图中,tf.matmul操作将对应于具有两个输入边(要乘以的矩阵)和一个输出边(乘法的结果)的单个节点。
abs_zero
2018/04/11
1.8K0
TensorFlow 入门
---- CS224d-Day 2: 在 Day 1 里,先了解了一下 NLP 和 DP 的主要概念,对它们有了一个大体的印象,用向量去表示研究对象,用神经网络去学习,用 TensorFlow 去训练模型,基本的模型和算法包括 word2vec,softmax,RNN,LSTM,GRU,CNN,大型数据的 seq2seq,还有未来比较火热的研究方向 DMN,还有模型的调优。 今天先不直接进入理论学习,而是先学习一下 TensorFlow,在原课程里,这部分在第7讲,但是我觉得最高效地学习算法的方式,就是一边
杨熹
2018/04/02
1.5K0
TensorFlow 入门
【tensorflow2.0】张量数据结构
Tensorflow的基本数据结构是张量Tensor。张量即多维数组。Tensorflow的张量和numpy中的array很类似。
西西嘛呦
2020/08/26
5170
深度学习_1_Tensorflow_1
# 深度学习 # 图像识别,自然语言处理 # 机器学习 深度学习 # 分类:神经网络(简单) 神经网络(深度) # 回归 图像:卷积神经网络 # 自然语言处理:循环神经网络 # cpu:运行操作系统,处理业务,计算能力不是特别突出 # gpu:专门为计算设计的 import tensorflow as tf a = tf.constant(5.0) b = tf.
Dean0731
2020/05/08
5400
TensorFlow基础知识
x1、x2 表示输入,w1、w2 分别是 x1 到 y 和 x2 到 y 的权重,y=x1w1+x2w2。
foochane
2019/10/14
7580
TensorFlow基础知识
基于TensorFlow的深度学习系列教程 1——Hello World!
自从12年AlexNet获得ImageNet大赛的冠军后,深度学习开始流行起来,也因为硬件的快速发展GPU并行计算配合易用的API,让深度学习以及神经网络大放光彩。
用户1154259
2018/12/28
9390
TensorFlow 修炼之道(1)——张量(Tensor)
TensorFlow名字可以拆解为两部分:Tensor、Flow。其中,Tensor 就表示张量。
abs_zero
2018/04/11
1.7K0
TensorFlow 修炼之道(1)——张量(Tensor)
tensorflow学习(tensorflow概念和用tensorflow拟合直线回归)
尽管深度学习背后的数学概念已经出现几十年了,但是用于创建和训练这些深度模型的程序类库在最近几年才出现。不幸的是,大多数类库都会在灵活性和实际生产价值上做出权衡。易用性的类库对于科研是无比珍贵的,因为这样科技工作者们才更方便地研究出新的模型框架,但是,如果考虑到实际生产的话,它们往往训练又太慢而没有实际的应用价值。另一方面,快、高效的类库,部署到分布式硬件上是可行的,但是它们只针对具体的那些神经网络,对新发明的网络又不适用。
opprash
2019/09/20
6710
TensorFlow笔记|Get Started
本系列推送主要参考: Stanford University CS20SI: Tensorflow for Deep Learning Research. TensorFlow哲学 separates definition of computations from their execution 对定义计算,计算的执行,做了分离。 01 — Tensor是什么? Tensor是一个 n 维数组: 0-d tensor: scalar (标量) 1-d tensor: vector (向量) 2-d tens
double
2018/04/02
6630
TensorFlow笔记|Get Started
Tensorflow 搭建神经网络 (一)
本文为中国大学MOOC课程《人工智能实践:Tensorflow笔记》的笔记中搭建神经网络,总结搭建八股的部分
拾点阳光
2018/05/07
1.8K1
Tensorflow 搭建神经网络 (一)
Tensorflow | 斯坦福cs20si | lecture1
上图的代码存在问题,目前不知道怎么修改。若是有朋友有修改方案,请在下方留言,谢谢!
努力在北京混出人样
2019/02/18
6720
从零开始学TensorFlow【什么是TensorFlow?】
TensorFlow是什么意思?Tensor?Flow?这篇文章介绍TensorFlow一些最基础的知识。
Java3y
2019/08/27
9860
从零开始学TensorFlow【什么是TensorFlow?】
相关推荐
TensorFlow2.X学习笔记(1)--TensorFlow核心概念
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档