Python tf.constant Vs.tf.placeholder

Python tf.constant Vs.tf.placeholder,python,machine-learning,tensorflow,Python,Machine Learning,Tensorflow,我正在学习Andrew Ng的深度学习课程,我不理解使用常量的基本目的。当占位符可以做到这一点时,我们为什么需要常数?假设我需要计算一个函数,同样可以通过获取常量和占位符来实现。我很困惑。如果有人能透露一些情况,我将不胜感激 常量和占位符都是计算图中的节点,输入为零,输出为一,也就是说,它们表示常量值 不同之处在于,当您作为程序员指定这些值时。对于常量,该值是计算图本身的一部分,在创建常量时指定:tf.constant(4)。使用占位符,每次运行计算图时,都可以在提要中输入不同的值 在机器学习中

我正在学习Andrew Ng的深度学习课程,我不理解使用常量的基本目的。当占位符可以做到这一点时,我们为什么需要常数?假设我需要计算一个函数,同样可以通过获取常量和占位符来实现。我很困惑。如果有人能透露一些情况,我将不胜感激

常量和占位符都是计算图中的节点,输入为零,输出为一,也就是说,它们表示常量值

不同之处在于,当您作为程序员指定这些值时。对于常量,该值是计算图本身的一部分,在创建常量时指定:
tf.constant(4)
。使用占位符,每次运行计算图时,都可以在
提要中输入不同的值

在机器学习中,占位符通常用于保存数据的节点,因为我们可能希望在循环中使用数据集的不同部分反复运行同一个图形。(使用常量是不可能的。)人们还使用占位符来表示在训练期间发生变化的参数,如学习率。(培训通常涉及使用不同的占位符值反复运行计算图。)常量仅用于实际为常量的对象。对于这些东西,我们不想使用占位符,因为我们不想每次运行图表时都反复指定占位符


如果您好奇的话,这个Jupyter笔记本对计算图以及占位符、常量和变量所起的作用有一个深入的解释:

常量和占位符都是计算图中的节点,输入为零,输出为一,也就是说,它们代表常量值

不同之处在于,当您作为程序员指定这些值时。对于常量,该值是计算图本身的一部分,在创建常量时指定:
tf.constant(4)
。使用占位符,每次运行计算图时,都可以在
提要中输入不同的值

在机器学习中,占位符通常用于保存数据的节点,因为我们可能希望在循环中使用数据集的不同部分反复运行同一个图形。(使用常量是不可能的。)人们还使用占位符来表示在训练期间发生变化的参数,如学习率。(培训通常涉及使用不同的占位符值反复运行计算图。)常量仅用于实际为常量的对象。对于这些东西,我们不想使用占位符,因为我们不想每次运行图表时都反复指定占位符


如果你好奇的话,这个Jupyter笔记本对计算图以及占位符、常数和变量所起的作用有一个深入的解释:

正如它们的名字所示,
占位符没有任何固定的值,只是“保留了计算图中所需的张量”。然而,
常量
是一个固定值的东西(也包含张量)。
常量
在其生存期内不会更改其值(不仅仅是
会话
)。一旦定义(在编程期间),它就固定在这个位置。另一方面,
占位符
在图形定义(编程)期间不表示任何值,但在
会话
运行开始时获取其值。事实上,所有占位符都应该以这种方式获取其值

session.run(a_variable, feed_dict={a_placeholder: [1.0, 2.1]})
现在人们可能会想到,
占位符
tf.变量
有何不同,占位符不能被要求在会话中求值,就像变量可以是:

session.run(a_tf_variable)

占位符的典型用法是用于输入节点,我们在其中输入不同输入的值(我们不希望要求对它们进行计算)。常量的典型用途是在人口研究中保留PI或地理块/地区的面积等值。

正如它们的名称所示,
占位符没有任何固定值,只是“保留计算图中所需的张量”。然而,
常量
是一个固定值的东西(也包含张量)。
常量
在其生存期内不会更改其值(不仅仅是
会话
)。一旦定义(在编程期间),它就固定在这个位置。另一方面,
占位符
在图形定义(编程)期间不表示任何值,但在
会话
运行开始时获取其值。事实上,所有占位符都应该以这种方式获取其值

session.run(a_variable, feed_dict={a_placeholder: [1.0, 2.1]})
现在人们可能会想到,
占位符
tf.变量
有何不同,占位符不能被要求在会话中求值,就像变量可以是:

session.run(a_tf_variable)
占位符的典型用法是用于输入节点,我们在其中输入不同输入的值(我们不希望要求对它们进行计算)。常数的典型用途是在人口研究中保存PI或地理块/地区的面积等值