tensorflow之tf.placeholder 与 tf.Variable区别对比

二者的主要区别在于

Variable:主要是用于训练变量(trainable variables)之类的。比如我们经常使用的网络权重,偏置。 
值得注意的是Variable在声明是必须赋予初始值。在训练过程中该值很可能会进行不断的加减操作变化。 
名称的真实含义,在于变量,也即在真实训练时,其值是会改变的,自然事先需要指定初始值;
 

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')
  • 声明时,若设定参数trainable=False,那么参数不会被改变,默认trainable=True;

placeholder: 用于得到传递进来的真实的训练样本

此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值

  • 不必指定初始值,可在运行时,通过 Session.run 的函数的 feed_dict 参数指定;
  • 也是用于存储数据,但是主要用于feed_dict的配合,接收输入数据用于训练模型等。placeholder值在训练过程中会不断地被赋予新的值,用于批训练,基本上其值是不会轻易进行加减操作。

placeholder在命名时是不会需要赋予值得,其被赋予值得时间实在feed_dict时。其命名的原因所在,仅仅作为一种占位符;

tf.placeholder(dtype, shape=None, name=None)

此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值

参数: 
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型 
shape:数据形状。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定 
name:名称。 

images_placeholder = tf.placeholder(tf.float32, shape=[batch_size, IMAGE_PIXELS])
labels_placeholder = tf.placeholder(tf.int32, shape=[batch_size])
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`tf.placeholder` 和 `tf.Variable` 都是 TensorFlow 中的重要概念,但在使用方式、作用和特点上有所不同。 `tf.placeholder` 是一个占位符,用于在 TensorFlow 的计算图中定义输入数据的位置。它在定义计算图的时候并不需要给定具体的数值,而是在计算图运行时,通过 `feed_dict` 参数传入具体的数值。它通常用于传入训练数据和标签等变量,例如: ``` x = tf.placeholder(tf.float32, shape=[None, 784]) y = tf.placeholder(tf.float32, shape=[None, 10]) ``` 在这个例子中,我们定义了两个 `tf.placeholder`,`x` 和 `y`,分别用于输入训练数据和标签。其中,`shape=[None, 784]` 表示输入数据的形状是一个二维张量,第一个维度可以是任意大小,第二个维度是 784。 相比之下,`tf.Variable` 则是用于在 TensorFlow 的计算图中定义需要优化的变量。它在定义时需要给定初始值,通常是一个随机数值或者全零的数组。在 TensorFlow 的计算过程中,`tf.Variable` 的值会不断地被优化,以使得算法达到更好的结果。例如: ``` W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) ``` 在这个例子中,我们定义了两个 `tf.Variable`,`W` 和 `b`,分别表示权重和偏置。它们的初始值都是全零的数组。 总的来说,`tf.placeholder` 用于传入数据,`tf.Variable` 用于定义需要优化的变量。它们在 TensorFlow 中都有着重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值