BAT面试题2:请简要介绍下Tensorflow的计算图

接下来,每天推送一道BAT的面试题,一般问到的这些知识点都是很重要的,所以知道的就再复习一下,不知道的希望这篇可以帮助到你。日积月累,你会在不知不觉中就步入机器学习的大门,并且越走越远。同时,还能助你顺利拿到OFFER.

今天BAT系列 第二题 请简要介绍下Tensorflow的计算图

TensorFlow哲学

separates definition of computations from their execution

对定义计算和计算的执行做了分离。

tensorflow的编程和以往接触的编程方式有很大差异。以前的编程,无论是编译类型语言还是动态解释型语言,变量计算后,就会得到结果,比如c=a+b,当执行完语句后,就会得到c的值。

但, tensorflow不是!

首先看一下,tensor是什么?它是一个 n 维数组: 0-d tensor: scalar (标量) 1-d tensor: vector (向量) 2-d tensor: matrix(矩阵)

有了tensor, 那么tensorflow的计算流图就可以构建为下面这个样子,圆形节点代表tensor间执行的操作:

比如对两个tensor执行一个add操作:

1import tensorflow as tf 
2a = tf.add(3, 5)

接下来,我们打印 a,看看发生什么:

1print (a) 
2Tensor("Add:0", shape=(), dtype=int32)

这就验证了之前所说,计算图和执行计算图做了严格的分离,所以此时打印得不到a值。

如何得到a值?

创建session,并在当前的sess中执行构建的图得到a的值。

1with tf.Session() as sess:
2    print(sess.run(a))

预告:BAT面试题3: 请问GBDT和XGBoost的区别是什么?

总结

Session对象封装了tensorflow的执行环境。记住:计算图只是定义了operations,operations只有在session里面执行才能真正得到计算图的结果。

原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2018-10-08

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Leetcode名企之路

服务端开发95th 99th 是什么意思?

作者:滔滔不绝 链接:https://www.zhihu.com/question/20575291/answer/22814728 来源:知乎

1031
来自专栏恰童鞋骚年

OOAD利器之UML基础

UML:Unified Modeling Language,即统一建模语言,简单地说就是一种有特殊用处的语言。本文是我初步学习UML的学习笔记,对于我们菜鸟码农...

913
来自专栏奇点大数据

Github寻宝 | 贪吃蛇游戏AI版,代码就得这么写!

本期案例是一个C++ 项目,同时也是经典小游戏——贪吃蛇的升级版。(该项目由Github用户stevennl贡献,英文原版可访问Github网站:https:/...

3874
来自专栏吉浦迅科技

DAY59:阅读 #pragma unroll

By default, the compiler unrolls small loops with a known trip count. The #pragm...

652
来自专栏儿童编程

一款儿童编程入门的理想工具——PythonTurtle

今天偶然发现了一款Python入门的理想工具PythonTurtle。非常容易上手,强烈推荐一下。PythonTurtle的灵感来源于早期编程语言Logo,也是...

2.3K3
来自专栏大数据挖掘DT机器学习

利用word2vec对关键词进行聚类

按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用kmeans的方法进行聚类了。不过对于新...

64410
来自专栏PPV课数据科学社区

【教程】一小时向非程序员介绍 R 编程语言

(1)下载R和RStudio 我对RStudio的印象不错,对于初学者来说,它既方便又很有帮助,对专业人士也很有用。尤其对于初学者:鼠标指向-点击式(point...

3018
来自专栏编程

PyTorch实现自由的数据读取

北京 上海巡回站 | NVIDIA DLI深度学习培训 2018年1月26/1月12日 NVIDIA 深度学习学院 带你快速进入火热的DL领域 正文共3850个...

36210
来自专栏编程心路

人人都可以用C语言写推箱子小游戏

C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了。这个是我学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提...

1K4
来自专栏数据分析

[数据清洗]-Pandas 清洗“脏”数据(一)

概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 ...

1K7

扫码关注云+社区

领取腾讯云代金券