在tensorflow中运行会话

时间:2018-03-27 02:30:09

标签: tensorflow machine-learning

和其他人一样,我有一个优化器和成本计算器如下:

with tf.name_scope("calc_cost"):
    cost_mini_batch = compute_cost(ZL, Y_mini_batch, parameters, lambd, 
                                   mb_size=tf.cast(X_mini_batch.shape[1], dtype=tf.float32))

with tf.name_scope("train"):
    optimizer =  tf.train.AdamOptimizer(learning_rate = learning_rate).minimize(cost_mini_batch)

在我的训练执行中,我运行以下内容......

_ , minibatch_cost = sess.run([optimizer, cost_mini_batch])

但我对于如何阅读本声明感到有点困惑。 由于优化器无论如何运行cost_mini_batch,我想知道这个语句是否会导致cost_mini_batch运行两次的问题?我感兴趣的实际值(用于记录目的)是minibatch_cost。 (我有点希望看到它正在减少。)但我显然同时希望训练算法运行优化器。

我想知道有没有比我更多经验的人可以帮我正确地阅读sess.run(...)语句?我假设cost_mini_batch在这里没有运行两次。例如,什么会导致它运行两次?

1 个答案:

答案 0 :(得分:1)

Tensorflow 工作流程为:

1. build the Graph
2. run the graph in Session

作为您的代码,您在图表中定义了cost_mini_batchoptimizer两个元素,之后,您调用会话来运行此<强>图形即可。实际上它们只会在您调用sess.run时运行。

Graph and Sessions

中查找更多内容