使用for循环和形状创建3D占位符有何不同。
batch = tf.placeholder(tf.int32, shape=(num_relations, None, 3))
VS
batch_placeholders = [tf.placeholder(tf.int32, shape=(None, 3), name='batch_'+str(i)) for i in range(num_relations)]
答案 0 :(得分:0)
batch = tf.placeholder(tf.int32, shape=(num_relations, None, 3))
返回具有给定形状的Tensor,其中None是一个变量,表示稍后定义此尺寸的大小。
batch_placeholders = [tf.placeholder(tf.int32, shape=(None, 3), name='batch_'+str(i)) for i in range(num_relations)]
这将返回一个具有相同给定形状的张量列表(可变大小的第一个维度和大小为3的第二个维度,但它们的名称属性根据i
变量而不同。
如果您希望形状参数中的尺寸大小也由i
变量定义,则它应该类似于以下代码段。取决于你想做什么。
batch_placeholders = [tf.placeholder(tf.int32, shape=(i, None, 3), name='batch_'+str(i)) for i in range(num_relations)]
请点击此处:https://www.tensorflow.org/api_docs/python/tf/placeholder