张量流通过随机因子调整图像大小

Ger*_*rry 3 python tensorflow

当图像大小未知时,我试图在图形构建期间按一个因子调整图像大小:

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

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

tf.image.resize_images(tf.expand_dims(img, 0), [H*scale, W*scale])
Run Code Online (Sandbox Code Playgroud)

返回:

ValueError: 'size' must be a 1-D int32 Tensor
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。谢谢。

jde*_*esa 5

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)
Run Code Online (Sandbox Code Playgroud)

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

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

tf.image.resize_images(tf.expand_dims(img, 0), tf.cast([H*scale, W*scale], tf.int32))
Run Code Online (Sandbox Code Playgroud)