我是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)'打印它的价值?
这是逐行图表示,是否正确?我知道2(a)是错误的,这就是我创建2(b)图的原因。那么当我运行这些语句时,图形会发生什么?
答案 0 :(得分:3)
所以Tensorflow分两个阶段运行,
所以回答你的问题:
Q1:此时,是的,已经创建了图表的架构(或者图形已经构建),但尚未执行。
Q2:当您在初始化程序上调用run
函数时,执行图形(即已完成实际初始化)
问题3:您需要首先在初始化程序上调用run
,因为在您执行此操作之前,如前所述,仅仅定义了图表模式。实际的分配和计算尚未完成。当张量会话启动并调用运行函数时,将执行图形,并在此过程中完成变量的初始化。在此之前,它们无法访问,因为即使它们已被定义,它们仍未被初始化。
张量流入门指南here提供了很好的解释。
希望这有帮助!