[Tensorflow] 如何對兩幅影象做同樣的資料增廣操作
阿新 • • 發佈:2018-12-17
- 在深度學習中,我們經常會對資料進行陣列增廣操作,比如說左右翻轉,增加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,也就是說他們必須執行同樣的次數,才可以達到上訴效果。