占位符
1、tf.placeholder
其中,tf.placeholder()函数具体情况如下:
def placeholder(dtype, shape=None, name=None):
"""为一个张量插入一个占位符,该张量总是被填充
注意:若直接对这个张量进行evaluated,会提示错误。 必须使用feed_dict可选参数将其值提供给Session.run(),Tensor.eval()
或Operation.run()进行转换。
Args:
dtype: 张量中的元素类型.
shape: 要输入的张量的形状(可选)。如果没有指定形状,则可以提供任意形状的张量。
name: 操作的名称(可选)。
Returns:
A `Tensor` that may be used as a handle for feeding a value, 不能直接进行 evaluated。
例子::
'''python
x = tf.placeholder(tf.float32, shape=(1024, 1024))
y = tf.matmul(x, x)
with tf.Session() as sess:
print(sess.run(y)) # ERROR: will fail because x was not fed.
rand_array = np.random.rand(1024, 1024)
print(sess.run(y, feed_dict={x: rand_array})) # Will succeed.
'''
"""
return gen_array_ops._placeholder(dtype=dtype, shape=shape, name=name)
2、tf.placeholder_with_default
def placeholder_with_default(input, shape, name=None):
"""一个占位符的操作,当它的输出不被馈送(fed)时,通过input传递
Args:
input: A ‘Tensor’。当它的输出没有被馈送时,A的默认值将被传送进来。 或者说当输出没有fed时,input通过一个占位符op
shape: A ‘Tensor’ 的形状。一个 tf.TensorShape 或者 ints 列表。(可选)
name: 操作的名称(可选)。
Returns:
A `Tensor`. 与输入的类型相同
A placeholder tensor that defaults to `input` if it is not fed.
"""