tensorflow通过随机因子调整图像大小

时间:2018-05-10 16:24:34

标签: python tensorflow

当图像大小未知时,我试图在图形构造期间通过因子调整图像大小:

H, W, _ = img.get_shape()
scale = tf.random_uniform([1], minval=1, maxval=1.5, dtype=tf.float32, seed=None, name=None)

其中我需要神奇地计算一个大小,该大小将转化为以下内容:

tf.image.resize_images(tf.expand_dims(img, 0), [H*scale, W*scale])

返回:

ValueError: 'size' must be a 1-D int32 Tensor

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:4)

您的scale形状为(1,),因此[H*scale, W*scale]的形状为(1, 2)。要修复它,只需生成标量随机而不是1元素向量:

scale = tf.random_uniform([], minval=1, maxval=1.5, dtype=tf.float32, seed=None, name=None)

请注意,形状是一个空列表,这意味着您需要一个标量。

除此之外,您还必须修复size参数的数据类型,如下所示:

tf.image.resize_images(tf.expand_dims(img, 0), tf.cast([H*scale, W*scale], tf.int32))