语法结构为:
tf.placeholder( dtype, shape=None, name )
具体函数分析:
dtype是数据类型,常用的如tf.float32等;
shape是数据的形状,默认None是一维值,也可多维如【3,3】,若看到【2,None】表示2行,列无要求;
name是数据名称,可不写
函数的作用:
减少产生的op,进而减少graph的开销。
具体原理是:
因为每一个tensor值在graph上都是一个op,当我们将train数据分成一个个minibatch然后传入网络进行训练时,每一个minibatch都将是一个op,这样的话,一副graph上的op未免太多,也会产生巨大的开销;
于是就有了tf.placeholder,
我们每次可以将一个minibatch传入到x = tf.placeholder(tf.float32,[None,32])上,下一次传入的x都替换掉上一次传入的x,
这样就对于所有传入的minibatch x就只会产生一个op,
不会产生其他多余的op,进而减少了graph的开销。
op是什么呢 ?
example:
x = tf.placeholder(tf.float32,[None,784])
op其实可以理解成为是一个x数据经过网络是长生的张量值。