将动态形状指定为输入参数

时间:2016-03-30 08:21:31

标签: python tensorflow

对于需要shape参数的tensorflow函数,我们如何将动态形状作为输入参数之一?

例如,假设我有一个占位符

x

现在我想创建一个与r = tf.random_uniform([x.get_shape()[0]]) 的第一维相同形状的一维随机张量。

x.get_shape()[0]

这不起作用,因为r将返回静态形状“无”。有没有办法根据x的动态形状为{{1}}分配动态形状?

2 个答案:

答案 0 :(得分:1)

您可以使用tf.shape() op获取张量的动态形状,并将其用作tf.random_uniform()的参数:

x = tf.placeholder(tf.float32, [None, 3])
r = tf.random_uniform(tf.shape(x)[0:1])

(请注意,tf.shape(x)的切片,即[0:1]必须指定范围而不是单个元素,因为tf.random_uniform()需要尺寸向量。)

答案 1 :(得分:0)

void functionA(argument1, argument2) {
   ...
   struct1 *point[2];
   ...

   functionB(point, ...) // Call the function ?
}

// Declare the function ?
void functionB(struct1 ** point, ...) {

  // Use point[1] and point[2] here
}
  

[0.69890845 0.64149153 0.16378665 0.89732885]