用法
adapt(
data, batch_size=None, steps=None
)
參數
-
data
要訓練的數據。它可以作為 tf.data 數據集或作為 numpy 數組傳遞。 -
batch_size
整數或None
。每個狀態更新的樣本數。如果未指定,batch_size
將默認為 32。如果您的數據是數據集、生成器或keras.utils.Sequence
實例的形式(因為它們生成批次),請不要指定batch_size
。 -
steps
整數或None
。步驟總數(樣本批次)使用輸入張量(例如 TensorFlow 數據張量)進行訓練時,默認None
等於數據集中的樣本數量除以批次大小,如果無法確定,則為 1。如果 x 是tf.data
數據集,並且 'steps' 為 None,則 epoch 將運行直到輸入數據集用完。傳遞無限重複數據集時,您必須指定steps
參數。數組輸入不支持此參數。
使預處理層的狀態適合正在傳遞的數據。
在層上調用adapt
後,預處理層的狀態在訓練期間不會更新。為了使預處理層在任何分布上下文中高效,它們對於調用該層的任何已編譯 tf.Graph
保持不變。這不會影響每個層僅調整一次時的層使用,但如果您多次調整層,則需要注意重新編譯任何已編譯的函數,如下所示:
- 如果要將預處理層添加到
keras.Model
,則需要在每次後續調用adapt
之後調用model.compile
。 - 如果您在
tf.data.Dataset.map
中調用預處理層,則應在每個adapt
之後在輸入tf.data.Dataset
上再次調用map
。 - 如果您使用
tf.function
直接調用預處理層,則需要在每次後續調用adapt
後再次在可調用對象上調用tf.function
。
tf.keras.Model
具有多個適應的示例:
layer = tf.keras.layers.Normalization(
axis=None)
layer.adapt([0, 2])
model = tf.keras.Sequential(layer)
model.predict([0, 1, 2])
array([-1., 0., 1.], dtype=float32)
layer.adapt([-1, 1])
model.compile() # This is needed to re-compile model.predict!
model.predict([0, 1, 2])
array([0., 1., 2.], dtype=float32)
tf.data.Dataset
具有多個適應的示例:
layer = tf.keras.layers.Normalization(
axis=None)
layer.adapt([0, 2])
input_ds = tf.data.Dataset.range(3)
normalized_ds = input_ds.map(layer)
list(normalized_ds.as_numpy_iterator())
[array([-1.], dtype=float32),
array([0.], dtype=float32),
array([1.], dtype=float32)]
layer.adapt([-1, 1])
normalized_ds = input_ds.map(layer) # Re-map over the input dataset.
list(normalized_ds.as_numpy_iterator())
[array([0.], dtype=float32),
array([1.], dtype=float32),
array([2.], dtype=float32)]
adapt()
僅用作計算層狀態的單個機器實用程序。要分析無法容納在單台機器上的數據集,請參閱用於多機的 Tensorflow 變換 map-reduce 解決方案。
相關用法
- Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代碼示例
- Python tf.keras.layers.experimental.SyncBatchNormalization用法及代碼示例
- Python tf.keras.layers.experimental.RandomFourierFeatures用法及代碼示例
- Python tf.keras.layers.experimental.EinsumDense用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.layers.Dropout用法及代碼示例
- Python tf.keras.layers.maximum用法及代碼示例
- Python tf.keras.layers.LayerNormalization用法及代碼示例
- Python tf.keras.layers.Conv2D用法及代碼示例
- Python tf.keras.layers.RepeatVector用法及代碼示例
- Python tf.keras.layers.Multiply用法及代碼示例
- Python tf.keras.layers.Activation用法及代碼示例
- Python tf.keras.layers.Conv1D用法及代碼示例
- Python tf.keras.layers.CategoryEncoding用法及代碼示例
- Python tf.keras.layers.subtract用法及代碼示例
- Python tf.keras.layers.Subtract用法及代碼示例
- Python tf.keras.layers.ZeroPadding3D用法及代碼示例
- Python tf.keras.layers.MaxPool3D用法及代碼示例
- Python tf.keras.layers.Dot用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。