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里面执行才能真正得到计算图的结果。

优质内容筛选与推荐>>
1、UC browser对CSS的支持小结——手机网站CSS小结
2、002.Open-Falcon Server部署及Agent监控
3、单例模式
4、C FAQ
5、【开源】LetterImageView


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号