博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TensorFlow 插曲-- tf.placeholder 与 tf.Variable
阅读量:4147 次
发布时间:2019-05-25

本文共 1081 字,大约阅读时间需要 3 分钟。

转自:

二者的主要区别在于:

  • 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')     
      1
      2
      3
      4
      5
      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
    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
1
2
3
4
5
6

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

转载地址:http://lmjti.baihongyu.com/

你可能感兴趣的文章
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>