Variable 与 placeholder 之间的区别 + feed_dict
2018-01-05 13:47
218 查看
tf.Variable:主要在于一些可训练变量(trainable variables),比如模型的权重(weights,W)或者偏执值(bias);
声明时,必须提供初始值;
名称的真实含义,在于变量,也即在真实训练时,其值是会改变的,自然事先需要指定初始值;
2
3
4
5
tf.placeholder:用于得到传递进来的真实的训练样本:
不必指定初始值,可在运行时,通过 Session.run 的函数的 feed_dict 参数指定;
这也是其命名的原因所在,仅仅作为一种占位符;
2
如下则是二者真实的使用场景:
2
3
4
5
6
当执行这些操作时,tf.Variable 的值将会改变,也即被修改,这也是其名称的来源(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')1
2
3
4
5
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])1
2
如下则是二者真实的使用场景:
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)1
2
3
4
5
6
当执行这些操作时,tf.Variable 的值将会改变,也即被修改,这也是其名称的来源(variable,变量)。
相关文章推荐
- Tensorflow中的placeholder和feed_dict的使用
- tf.placeholder 和 feed_dict
- tensorflow 笔记12:函数区别:placeholder,variable,get_variable,参数共享
- TF:TF定义两个变量相乘之placeholder先hold类似变量+feed_dict最后外界传入值—Jason niu
- tensorflow之tf.placeholder 与 tf.Variable区别对比
- IEnumerable,ICollection,IList,List之间的区别
- python中list/tuple/dict/set的区别
- 数据仓库、数据整合、ETL、ELT和EII之间的区别?
- public,protected,friendly,private之间的区别,及findViewById的作用
- iterator与iterable接口之间的区别
- jQuery中的.bind()、.live()和.delegate()之间区别分析
- String、StringBuffer与StringBuilder之间区别
- WebLogic、WebSphere、JBOSS、Tomcat之间的区别
- Smoke test,Sanity test,Regression test之间的区别
- UTF-8 GBK UTF8 GB2312 之间的区别和关系
- 辨析主函数:main()/void main()/int main()/int main(void)/int main(int argc, char *argv[])之间的区别
- 开发人员、程序员与计算机科学家三者之间的区别
- %02x与%2x 之间的区别
- Jbpm3.1中setVariable()和setVariableLocally()的区别
- String StringBuffer 和StringBuild之间的区别