2017-08-04 23 views

回答

0

你說得對,像tf.random_flip_left_right這樣的函數只有在沒有協變變量時才能使用。例如,如果您的輸出是標籤圖像,那麼您需要對它們應用相同的隨機操作。

我看到兩種方法可以做到這一點:

  1. 你基本上重寫隨機操作與幾個張量工作。例如,更換tf.random_flip_left_right,你可以使用

    coin = tf.less(tf.random_uniform((), 0., 1.), 0.5) 
    im1 = tf.cond(coin, lambda: tf.flip_left_right(im1), lambda: im1) 
    im2 = tf.cond(coin, lambda: tf.flip_left_right(im2), lambda: im2) 
    ... 
    
  2. 您隨機運前,所有的張量疊加在一起:

    all_im = tf.stack([im1, im2,...], axis=2) 
    all_im = tf.random_flip_left_right(all_im) 
    [im1, im2, ...] = tf.split(all_im, [im1.shape[2], im2.shape[2], ...], axis=2) 
    

    第二個解決方案只能如果所有的張量具有相同的空間範圍。

+0

謝謝,它的工作原理。 – fuzhi

相關問題