前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BAT面试题2:请简要介绍下Tensorflow的计算图

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

作者头像
double
发布2018-10-23 15:06:57
5K0
发布2018-10-23 15:06:57
举报
文章被收录于专栏:算法channel算法channel

接下来,每天推送一道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操作:

代码语言:javascript
复制
1import tensorflow as tf 
2a = tf.add(3, 5)

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

代码语言:javascript
复制
1print (a) 
2Tensor("Add:0", shape=(), dtype=int32)

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

如何得到a值?

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

代码语言:javascript
复制
1with tf.Session() as sess:
2    print(sess.run(a))

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

总结

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

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

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档