1. 程式人生 > >[Tensorflow] 如何對兩幅影象做同樣的資料增廣操作

[Tensorflow] 如何對兩幅影象做同樣的資料增廣操作

  • 在深度學習中,我們經常會對資料進行陣列增廣操作,比如說左右翻轉,增加noise等操作。
  • 但是,現在我們的輸入是一組影象是一個sample,那我們需要對這一組影象進行同樣的資料增廣操作,也就是說同一個sample之間的隨機性是不存在的,不同sample之間的隨機性是存在的。
  • 實現方法參考下面的程式碼:
img = tf.ones([512, 512, 3], dtype=tf.float32)
seed = np.random.randint(1, 100)
brightness_image_tensor1 = tf.image.random_brightness(img, max_delta=
32. / 255., seed=seed) brightness_image_tensor2 = tf.image.random_brightness(img, max_delta=32. / 255., seed=seed) with tf.Session() as sess: # brightness_image1 = sess.run(brightness_image_tensor1) # print(np.sum(brightness_image1)) for i in range(3): brightness_image1, brightness_image2 =
sess.run([brightness_image_tensor1, brightness_image_tensor2]) print(np.sum(brightness_image1), np.sum(brightness_image2))

我們可以看到上面程式碼的輸出是:

877246.6 877246.6
874782.06 874782.06
699716.2 699716.2

如果我們不指定seed,那麼他的輸出是

741118.3 716057.94
856578.1 827044.1
772722.1 848680.25

可以看到通過指定seed,我們可以讓一個sample內的多幅影象進行同樣的資料預處理操作。但是需要注意的是,brightness_image_tensor1和brightness_image_tensor2必須同時sess.run,也就是說他們必須執行同樣的次數,才可以達到上訴效果。