RandomSwap
類別keras_hub.layers.RandomSwap(
rate,
max_swaps=None,
skip_list=None,
skip_fn=None,
skip_py_fn=None,
seed=None,
name=None,
dtype="int32",
**kwargs
)
透過隨機交換單字來擴增輸入。
當您需要使用交換擴增來產生新資料時,此層非常實用,如論文 [EDA: 用於提升文本分類任務性能的簡易資料擴增技術] (https://arxiv.org/pdf/1901.11196.pdf) 中所述。此層預期輸入已預先分割為 token 層級輸入。這允許控制擴增的程度,您可以按字元分割以進行字元層級交換,或按單字分割以進行單字層級交換。
輸入資料應以張量、tf.RaggedTensor
或列表的形式傳遞。對於批次輸入,輸入應為列表的列表或秩為 2 的張量。對於非批次輸入,每個元素應為列表或秩為 1 的張量。
參數
True
或 False
作為輸出。True 值表示該 token 不應被視為刪除候選者。與 skip_fn
參數不同,此參數不必是可追蹤的——它可以是任何 python 函數。範例
單字層級用法。
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey I like", "Keras and Tensorflow"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.4, seed=42)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['like I Hey', 'and Keras Tensorflow']
字元層級用法。
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey Dude", "Speed Up"]
>>> x = list(map(lambda x: list(x), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.4, seed=42)
>>> y = augmenter(x)
>>> list(map(lambda y: "".join(y), y))
['deD yuHe', 'SUede pp']
搭配 skip_list 的用法。
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey I like", "Keras and Tensorflow"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.4,
... skip_list=["Keras"], seed=42)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['like I Hey', 'Keras and Tensorflow']
搭配 skip_fn 的用法。
>>> def skip_fn(word):
... return tf.strings.regex_full_match(word, r"[I, a].*")
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey I like", "Keras and Tensorflow"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.9, max_swaps=3,
... skip_fn=skip_fn, seed=11)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['like I Hey', 'Keras and Tensorflow']
搭配 skip_py_fn 的用法。
>>> def skip_py_fn(word):
... return len(word) < 4
>>> keras.utils.set_random_seed(1337)
>>> x = ["He was drifting along", "With the wind"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.8, max_swaps=2,
... skip_py_fn=skip_py_fn, seed=15)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['He was along drifting', 'wind the With']