python - tf.constant 与 tf.placeholder

标签 python machine-learning tensorflow

我正在学习 Andrew Ng 的深度学习类(class),但我不了解使用常量的基本目的。当占位符可以做到这一点时,为什么我们需要常量?假设我需要计算一个函数……同样可以通过取常量和占位符来执行。我很困扰。如果有人能阐明一些问题,将不胜感激。

最佳答案

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

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

在机器学习中,占位符通常用于保存数据的节点,因为我们可能希望使用数据集的不同部分在循环中一次又一次地运行相同的图形。 (使用常量这是不可能的。)人们还使用占位符来表示在训练过程中发生变化的参数,例如学习率。 (训练通常涉及使用不同的占位符值一遍又一遍地运行计算图。)常量仅用于实际上是常量的事物。对于这些,我们不想使用占位符,因为我们不想每次运行图形时都必须一遍又一遍地指定它们。

如果你很好奇,这个 Jupyter notebook 对计算图以及占位符、常量和变量所扮演的角色有深入的解释:https://github.com/kevinjliang/Duke-Tsinghua-MLSS-2017/blob/master/01B_TensorFlow_Fundamentals.ipynb

关于python - tf.constant 与 tf.placeholder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46878312/

相关文章:

python - Python 中的 DecisonTreeclassifer() - 尝试构建树时出错

machine-learning - 损失计算中的Keras组件选择

python - Tensorflow 采样 Softmax 损失正确使用

python - 使用 Keras Lambda 层时出现类型错误

Python测试: How do I mock outside of the testing scope?

c++ - 修改多个输入的 Caffe C++ 预测代码

tensorflow - Tensorboard 无法获取运行的第一个事件时间戳

python - Keras 始终输出恒定值

python - 尝试将Django中urls.py中的字符串转换为所有小写字母?

python - 根据单列的值将值添加到数据框列