tf.keras.layers.AveragePooling2D
| Просмотреть исходный код на GitHub |
Операция усредняющего пулинга для пространственных данных.
tf.keras.layers.AveragePooling2D(
pool_size=(2, 2),
strides=None,
padding='valid',
data_format=None,
**kwargs
)
Уменьшает размерность входных данных по пространственным измерениям (высота и ширина), вычисляя среднее значение по окну входных данных (размер которого определяется pool_size) для каждого канала входных данных. Окно смещается на strides по каждому измерению.
Результирующая форма выходных данных при использовании опции "valid" заполнения имеет размер (число строк или столбцов): output_shape = math.floor((input_shape - pool_size) / strides) + 1 (при input_shape >= pool_size)
Результирующая форма выходных данных при использовании опции "same" заполнения: output_shape = math.floor((input_shape - 1) / strides) + 1
Например, для strides=(1, 1) и padding="valid":
x = tf.constant([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
x = tf.reshape(x, [1, 3, 3, 1])
avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(1, 1), padding='valid')
avg_pool_2d(x)
<tf.Tensor: shape=(1, 2, 2, 1), dtype=float32, numpy=
array([[[[3.],
[4.]],
[[6.],
[7.]]]], dtype=float32)>
Например, для stride=(2, 2) и padding="valid":
x = tf.constant([[1., 2., 3., 4.],
[5., 6., 7., 8.],
[9., 10., 11., 12.]])
x = tf.reshape(x, [1, 3, 4, 1])
avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(2, 2), padding='valid')
avg_pool_2d(x)
<tf.Tensor: shape=(1, 1, 2, 1), dtype=float32, numpy=
array([[[[3.5],
[5.5]]]], dtype=float32)>
Например, для strides=(1, 1) и padding="same":
x = tf.constant([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
x = tf.reshape(x, [1, 3, 3, 1])
avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(1, 1), padding='same')
avg_pool_2d(x)
<tf.Tensor: shape=(1, 3, 3, 1), dtype=float32, numpy=
array([[[[3.],
[4.],
[4.5]],
[[6.],
[7.],
[7.5]],
[[7.5],
[8.5],
[9.]]]], dtype=float32)>
| Аргументы | |
|---|---|
pool_size | целое число или кортеж из 2 целых чисел, множители уменьшения масштаба (вертикальное, горизонтальное). (2, 2) уменьшит входные данные по обоим пространственным измерениям вдвое. Если указано только одно целое число, то одинаковая длина окна будет использоваться для обоих измерений. |
strides | Целое число, кортеж из 2 целых чисел или None. Значения шагов. Если None, оно будет по умолчанию pool_size. |
padding | Один из "valid" или "same" (регистр не учитывается). "valid" означает отсутствие заполнения. "same" приводит к равномерному дополнению слева/справа или сверху/снизу входных данных таким образом, что высота/ширина выходных данных совпадает с высотой/шириной входных данных. |
data_format | Строка, одна из channels_last (по умолчанию) или channels_first. Порядок измерений во входных данных. channels_last соответствует входным данным с формой (batch, height, width, channels), а channels_first соответствует входным данным с формой (batch, channels, height, width). По умолчанию используется значение image_data_format в файле конфигурации Keras по адресу ~/.keras/keras.json. Если вы его никогда не устанавливали, он будет "channels_last". |
Форма входных данных:
- Если
data_format='channels_last': 4D тензор с формой(batch_size, rows, cols, channels). - Если
data_format='channels_first': 4D тензор с формой(batch_size, channels, rows, cols).
Форма выходных данных:
- Если
data_format='channels_last': 4D тензор с формой(batch_size, pooled_rows, pooled_cols, channels). - Если
data_format='channels_first': 4D тензор с формой(batch_size, channels, pooled_rows, pooled_cols).
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/layers/AveragePooling2D