1、placeholder(TensorFlow provides a placeholder operation that must be fed with data on execution.)
训练神经网络每次提供一个训练样本,如果每次迭代选取的数据通过常量表示的话,TensorFlow计算量会非常大。(每增加一个常量、在计算图中增加一个节点)占位符也可以解决这个问题。参考:点击打开链2、tf.Variable适合一些需要初始化或被训练而变化的权重或参数,而tf.placeholder适合通常不会改变的被训练的数据集。
import tensorflow as tf
#因为需要重复输入x,而每建一个x就会生成一个结点,计算图的效率会低。所以使用占位符
input1=tf.placeholder(tf.float32)#tensorflow只默认处理32位float
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)
#运行y时将占位符填上,feed_dict为字典,变量名不可变
with tf.Session() as sess:
print(sess.run(output,feed_dict={input1:[7.],input2:[2.0]}))#在tf.Session.run()中使用feed_dict来传入tensor.
2、tf.Variable适合一些需要初始化或被训练而变化的权重或参数,而tf.placeholder适合通常不会改变的被训练的数据集。
参考传送门:点击打开链接