Дополнительно
В чем разница между функциями Keras MaxPooling1D и GlobalMaxPooling1D?
MaxPooling1D и GlobalMaxPooling1D описаны как операция максимального объединения временных данных.
keras.layers.pooling.MaxPooling1D (pool_size = 2, steps = None, padding = 'valid')
Я понимаю, что GlobalMaxPooling1D не принимает входных параметров.
keras.layers.pooling.GlobalMaxPooling1D ()
Я просто хотел бы визуально понять, как они отличаются в своей работе?
41
2
Td; lr
GlobalMaxPooling1D
для временных данных принимает максимальный вектор над размер шага. Таким образом, тензор с формой [10, 4, 10] становится тензором с формой [10, 10] после глобального объединения.MaxPooling1D
также использует максимум над шагами, но ограничен pool_size для каждого шага. Таким образом, тензор [10, 4, 10] сpooling_size = 2
иstride = 1
является тензором [10, 3, 10] послеMaxPooling (pooling_size = 2, stride = 1)
Длинный ответ с графической помощью
Допустим, у нас есть простое предложение с 4 словами, и у нас есть несколько векторных кодировок для слов (например, word2vec embeddings). Конечно, вы обычно не можете увеличить пул и встраивать тензор, но это должно быть сделано, например. Также глобальное объединение работает по каналам, но я оставлю это вне этой иллюстрации. Наконец, с набивкой все становится немного сложнее, но и здесь нам это не нужно.
Предположим, у нас есть
MaxPooling1D (pool_size = 2, steps = 1).
ЗатемТаким образом, это приведет к тензору [1, 3, 3], причем каждый временной интервал будет максимальным по сравнению с 2D-пулом. И поскольку у нас было 3 пула, мы фактически сократили наши временные интервалы с 4 до 3.
Однако, если мы используем
GlobalMaxPooling1D
, мы просто возьмем максимальный вектор этого предложения (Тензор), который, вероятно, является векторным представлением слова «вживой».Действительно, вот как GlobalMaxPooling1D определяется в керасах
Надеюсь, это поможет, пожалуйста, попросите меня уточнить что-нибудь.
Кроме того, вот пример, с которым вы можете играть:
@ThePassenger [x, y, z] можно увидеть как «массив» с элементами x, где каждый элемент представляет собой матрицу с строками y и столбцами z. но также, поскольку у вас есть матрица с x строками и y столбцами, и для каждого элемента у вас есть массив z элементов.
пулы - это, например, способ уменьшить тензор, если у вас есть матрица из x строк и y столбцов, применяющих пул, может дать вам матрицу из x-n строк и тех же столбцов y-m.