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

时间:2022-05-04
本文章向大家介绍tensorflow之tf.placeholder 与 tf.Variable区别对比,主要内容包括二者的主要区别在于、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

二者的主要区别在于

Variable:主要是用于训练变量之类的。比如我们经常使用的网络权重,偏置。 值得注意的是Variable在声明是必须赋予初始值。在训练过程中该值很可能会进行不断的加减操作变化。 名称的真实含义,在于变量,也即在真实训练时,其值是会改变的,自然事先需要指定初始值; placeholder:也是用于存储数据,但是主要用于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:名称。 案例:

tf.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')