gpt4 book ai didi

python - Tensorflow feed_dict 问题

转载 作者:行者123 更新时间:2023-11-28 18:20:54 24 4
gpt4 key购买 nike

所以我是 Tensorflow 的新手,我试图准确了解何时使用 feed_dict 以及何时不需要。

但是,我对 feed_dict 的工作原理感到困惑。

例如:1 会与 2 和 3 相同吗?

1. accuracy, cost = sess.run([accuracy, cost], feed_dict = {X:X_batch, Y:Y_batch})

2. accuracy = sess.run(accuracy, feed_dict = {X:X_batch, Y: Y_batch})
cost = sess.run(cost, feed_dict = {X:X_batch, Y:Y_batch})

3. accuracy = sess.run(accuracy, feed_dict = {X:X_batch, Y:Y_batch})
cost = sess.run(cost)

我不知道如果 tensorflow 在 cost 中接收到相同的 feed_dict 并且在 tensorflow graph 计算精度中已经计算了 cost,它是否再次遍历神经网络来评估值,或者它会返回计算的值而不经过又是网络?

另外,由于图中已经计算了成本,如果我想检索最新计算的成本,是否可以像3那样进行?

此外,来自 Hvass-Labs/TensorFlow-Tutorials/TensorFlow Tutorial #02 Convolutional Neural Network ,

在函数 plot_conv_weights(weights, input_channel=0) 中

weights = sess.run(conv_weigh)

由于训练权重需要我们用值填充占位符 X 和 Y,但这里我没有看到 feed_dict。

那么 feed_dict 究竟是如何工作的呢?

附言:所以我在 tensorflow github 上问了这个问题,但他们关闭了我的问题,并告诉我如何 tf.Session().run()有效。

据我从文档中了解到,tf.Operation if fetched 将返回 None。而 tf.Operation 是 tensorflow 图中的节点,它对两个张量进行计算。

但是,我认为这个文档与我的问题无关...

最佳答案

要了解 feed_dict,您需要了解 TensorFlow 的工作原理。在 TF 中,一切都是惰性求值的。

这是一个简单的例子:

import tensorflow as tf
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
c = tf.add(a, b)

sess = tf.Session()
print(sess.run(c, feed_dict={a: 1, b: 2}))
sess.close()

从代码中你可以看到我们有两个占位符没有填充任何数字。我们的目标是计算 ab 的总和。通过 feed_dict 我们基本上是用值填充它。这个概念也适用于您的问题。

关于您的问题,这是否相同:

1. accuracy, cost = sess.run([accuracy, cost], feed_dict = {X:X_batch, Y:Y_batch})

2. accuracy = sess.run(accuracy, feed_dict = {X:X_batch, Y: Y_batch})
cost = sess.run(cost, feed_dict = {X:X_batch, Y:Y_batch})

答案是肯定的。 TensorFlow 的另一个概念是计算与图形分离,这意味着只要您的计算在同一 session 中运行,您也将获得相同的 acurracy 结果> 和 成本。但当然我们总是更喜欢 1)。

关于你的最后一个问题,关于权重函数。在他的笔记本上你可以看到没有涉及计算:

# Retrieve the values of the weight-variables from TensorFlow.
# A feed-dict is not necessary because nothing is calculated.
w = session.run(weights)

他只是绘制了 optimize 函数产生的权重输出。

关于python - Tensorflow feed_dict 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com