是否可以在使用 tf.keras.layers.RandomFlip 進行隨機翻轉操作時設定可能性?
例如:
def augmentation():
data_augmentation = keras.Sequential([
keras.layers.RandomFlip("horizontal", p=0.5),
keras.layers.RandomRotation(0.2, p=0.5)
])
return data_augmentation
uj5u.com熱心網友回復:
嘗試創建一個簡單的Lambda層并在單獨的函式中定義概率:
import random
def random_flip_on_probability(image, probability= 0.5):
if random.random() < probability:
return tf.image.random_flip_left_right(image)
return image
def augmentation():
data_augmentation = keras.Sequential([
keras.layers.Lambda(random_flip_on_probability),
keras.layers.RandomRotation(0.2, p=0.5)
])
return data_augmentation
如果您需要在訓練或推理期間使用資料增強,則必須定義自己的自定義層。嘗試這樣的事情:
class RandomFlipOnProbability(tf.keras.layers.Layer):
def __init__(self, probability):
super(MyDenseLayer, self).__init__()
self.probability = probability
def call(self, images):
if random.random() < self.probability:
return tf.image.flip_left_right(images)
return images
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/334340.html
上一篇:Pandas-在json中閱讀,如果布林值包含空值,則被打成浮動值
下一篇:我增加資料后CNN停止運行
