tfmri.layers.AveragePooling1D
tfmri.layers.AveragePooling1D¶
- class AveragePooling1D(*args, **kwargs)[source]¶
Bases:
keras.layers.pooling.average_pooling1d.AveragePooling1DAverage pooling for temporal data.
Note
This layer can be used as a drop-in replacement for tf.keras.layers.AveragePooling1D. However, this one also supports complex-valued pooling. Simply pass
dtype='complex64'ordtype='complex128'to the layer constructor.Downsamples the input representation by taking the average value over the window defined by
pool_size. The window is shifted bystrides. The resulting output when using “valid” padding option has a shape of:output_shape = (input_shape - pool_size + 1) / strides)The resulting output shape when using the “same” padding option is:
output_shape = input_shape / stridesFor example, for strides=1 and padding=”valid”:
>>> x = tf.constant([1., 2., 3., 4., 5.]) >>> x = tf.reshape(x, [1, 5, 1]) >>> x <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy= array([[[1.], [2.], [3.], [4.], [5.]], dtype=float32)> >>> avg_pool_1d = tf.keras.layers.AveragePooling1D(pool_size=2, ... strides=1, padding='valid') >>> avg_pool_1d(x) <tf.Tensor: shape=(1, 4, 1), dtype=float32, numpy= array([[[1.5], [2.5], [3.5], [4.5]]], dtype=float32)>
For example, for strides=2 and padding=”valid”:
>>> x = tf.constant([1., 2., 3., 4., 5.]) >>> x = tf.reshape(x, [1, 5, 1]) >>> x <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy= array([[[1.], [2.], [3.], [4.], [5.]], dtype=float32)> >>> avg_pool_1d = tf.keras.layers.AveragePooling1D(pool_size=2, ... strides=2, padding='valid') >>> avg_pool_1d(x) <tf.Tensor: shape=(1, 2, 1), dtype=float32, numpy= array([[[1.5], [3.5]]], dtype=float32)>
For example, for strides=1 and padding=”same”:
>>> x = tf.constant([1., 2., 3., 4., 5.]) >>> x = tf.reshape(x, [1, 5, 1]) >>> x <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy= array([[[1.], [2.], [3.], [4.], [5.]], dtype=float32)> >>> avg_pool_1d = tf.keras.layers.AveragePooling1D(pool_size=2, ... strides=1, padding='same') >>> avg_pool_1d(x) <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy= array([[[1.5], [2.5], [3.5], [4.5], [5.]]], dtype=float32)>
- Args:
pool_size: Integer, size of the average pooling windows. strides: Integer, or None. Factor by which to downscale.
E.g. 2 will halve the input. If None, it will default to
pool_size.- padding: One of
"valid"or"same"(case-insensitive). "valid"means no padding."same"results in padding evenly to the left/right or up/down of the input such that output has the same height/width dimension as the input.- data_format: A string,
one of
channels_last(default) orchannels_first. The ordering of the dimensions in the inputs.channels_lastcorresponds to inputs with shape(batch, steps, features)whilechannels_firstcorresponds to inputs with shape(batch, features, steps).
- padding: One of
- Input shape:
If
data_format='channels_last': 3D tensor with shape(batch_size, steps, features).If
data_format='channels_first': 3D tensor with shape(batch_size, features, steps).
- Output shape:
If
data_format='channels_last': 3D tensor with shape(batch_size, downsampled_steps, features).If
data_format='channels_first': 3D tensor with shape(batch_size, features, downsampled_steps).
- call(inputs)[source]¶
This is where the layer’s logic lives.
The
call()method may not create state (except in its first invocation, wrapping the creation of variables or other resources intf.init_scope()). It is recommended to create state in__init__(), or thebuild()method that is called automatically beforecall()executes the first time.- Parameters
inputs –
Input tensor, or dict/list/tuple of input tensors. The first positional
inputsargument is subject to special rules: -inputsmust be explicitly passed. A layer cannot have zeroarguments, and
inputscannot be provided via the default value of a keyword argument.NumPy array or Python scalar values in
inputsget cast as tensors.Keras mask metadata is only collected from
inputs.Layers are built (
build(input_shape)method) using shape info frominputsonly.input_speccompatibility is only checked againstinputs.Mixed precision input casting is only applied to
inputs. If a layer has tensor arguments in*argsor**kwargs, their casting behavior in mixed precision should be handled manually.The SavedModel input specification is generated using
inputsonly.Integration with various ecosystem packages like TFMOT, TFLite, TF.js, etc is only supported for
inputsand not for tensors in positional and keyword arguments.
*args – Additional positional arguments. May contain tensors, although this is not recommended, for the reasons above.
**kwargs –
Additional keyword arguments. May contain tensors, although this is not recommended, for the reasons above. The following optional keyword arguments are reserved: -
training: Boolean scalar tensor of Python boolean indicatingwhether the
callis meant for training or inference.mask: Boolean input mask. If the layer’scall()method takes amaskargument, its default value will be set to the mask generated forinputsby the previous layer (ifinputdid come from a layer that generated a corresponding mask, i.e. if it came from a Keras layer with masking support).
- Returns
A tensor or list/tuple of tensors.