当图像大小未知时,我试图在图形构造期间通过因子调整图像大小:
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
非常感谢任何帮助。谢谢。
答案 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))