用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。