Tensorflow中的变量,常量和图形

时间:2017-06-27 08:29:22

标签: python tensorflow

我是tensorflow的新手,经过不同来源的一些基础知识后,我对图表及其执行完全感到困惑。这是一个6行代码:

 x = tf.constant([35, 40, 45], name='x')
 y = tf.Variable(x + 5, name='y')

 model = tf.global_variables_initializer()

 with tf.Session() as session:
    session.run(model)
    print(session.run(y))

1。第1行和第2行创建一个常量和一个变量,此时会创建一个图形吗?

2.当我运行'模型'时创建的图表。通过会话,即变量初始化?以及图表执行的时间点?

3.执行图表时,为什么我们需要运行变量,即session.run(y)'打印它的价值?

编辑: enter image description here

这是逐行图表示,是否正确?我知道2(a)是错误的,这就是我创建2(b)图的原因。那么当我运行这些语句时,图形会发生什么?

1 个答案:

答案 0 :(得分:3)

所以Tensorflow分两个阶段运行,

  1. 创建阶段(或构建阶段):在此定义变量,常量和占位符及其关系。(定义它们的数学运算)
  2. 执行阶段:到目前为止,所有变量和应用的计算(如matmul或adddition等)仅仅是定义的。没有计算。它们是在这个阶段计算的。
  3. 所以回答你的问题:

    Q1:此时,是的,已经创建了图表的架构(或者图形已经构建),但尚未执行。

    Q2:当您在初始化程序上调用run函数时,执行图形(即已完成实际初始化)

    问题3:您需要首先在初始化程序上调用run,因为在您执行此操作之前,如前所述,仅仅定义了图表模式。实际的分配和计算尚未完成。当张量会话启动并调用运行函数时,将执行图形,并在此过程中完成变量的初始化。在此之前,它们无法访问,因为即使它们已被定义,它们仍未被初始化。

    张量流入门指南here提供了很好的解释。

    希望这有帮助!