1

我正在尝试使用 tensorflow 的 left_right 和 up_down 增强函数随机化翻转增强。我通过 tf.cond() 根据布尔条件映射函数时遇到错误

random_number=tf.random_uniform([],seed=seed)
print_random_number=tf.print(random_number)
flip_strategy=tf.less(random_number,0.5)

0.1版

image=tf.cond
        (
            flip_strategy,
            tf.image.flip_left_right(image),
            tf.image.flip_up_down(image),
        )

0.2版

image=tf.cond
            (
                flip_strategy,
                lambda: tf.image.flip_left_right(image),
                lambda: tf.image.flip_up_down(image),
            )

错误

TypeError:无法将类型对象转换为张量。内容: 。考虑将元素转换为支持的 type.ROR:

让我知道我错过了什么或是否需要更多信息。

4

1 回答 1

-1

文档中:

tf.math.less(x, y, name=None)

参数:

x: A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.

y: A Tensor. Must have the same type as x.

name: A name for the operation (optional).

所以 tf.less 需要两个张量,但是您传递的参数之一是一个 numpy 数组。您可以将张量中的 numpy 数组转换为


random_number=tf.random_uniform([],seed=seed)
print_random_number=tf.print(random_number)
random_numer=tf.convert_to_tensor(random_number,dtype=tf.float32)
flip_strategy=tf.less(random_number,0.5)

image=tf.cond`
  (
  flip_strategy,
  tf.image.flip_left_right(image),
  tf.image.flip_up_down(image),
  )

于 2019-04-29T17:12:55.663 回答