TensorFlow 辨异 —— tf.placeholder 与 tf.Variable

二者的主要区别在于:

  • tf.Variable:主要在于一些可训练变量(trainable variables),比如模型的权重(weights,W)或者偏执值(bias);

    • 声明时,必须提供初始值;
    • 名称的真实含义,在于变量,也即在真实训练时,其值是会改变的,自然事先需要指定初始值; 
      weights = tf.Variable(
          tf.truncated_normal([IMAGE_PIXELS, hidden1_units],
                  stddev=1./math.sqrt(float(IMAGE_PIXELS)), name='weights')
      )
      biases = tf.Variable(tf.zeros([hidden1_units]), name='biases')
  • tf.placeholder:用于得到传递进来的真实的训练样本:

    • 不必指定初始值,可在运行时,通过 Session.run 的函数的 feed_dict 参数指定;
    • 这也是其命名的原因所在,仅仅作为一种占位符;
    images_placeholder = tf.placeholder(tf.float32, shape=[batch_size, IMAGE_PIXELS])
    labels_placeholder = tf.placeholder(tf.int32, shape=[batch_size])

如下则是二者真实的使用场景:

for step in range(FLAGS.max_steps):
    feed_dict = { images_placeholder = images_feed, labels_placeholder = labels_feed } _,loss_value = sess.run([train_op, loss], feed_dict=feed_dict)

当执行这些操作时,tf.Variable 的值将会改变,也即被修改,这也是其名称的来源(variable,变量)。

What’s the difference between tf.placeholder and tf.Variable

 
 

转载于:https://www.cnblogs.com/nowornever-L/p/6908775.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值