4

Я использую CNN в Keras для задачи NLP, а вместо максимального объединения я пытаюсь достичь максимального времени пула.Макс. Время пула в Keras

Любые идеи/хаки о том, как достичь этого?

Что я имею в виду не более с течением времени объединения заключается в объединении наибольшего значения, независимо от того, где они находятся в векторе

ответ

3

Если предположить, что ваша форма данных (batch_size, seq_len, features) вы можете обратиться:

seq_model = Reshape((seq_len * features, 1))(seq_model) 
seq_model = GlobalMaxPooling1D()(seq_model) 
+0

Точно, что мне нужно, спасибо – bluesummers

+0

@bluesummers Действительно ли это ответ на ваш вопрос? Посмотрите на model.summary(). Вы получите одно максимальное значение, а не «самые высокие значения n». –

+0

@AlexeyGolyshev, вы не получите максимальное значение, вход в форме (образцы, шаги, функции), а выход (образцы, функции) - это не ограничивается 1 максимальным значением – bluesummers

0

Просто включите ваши размеры с помощью Keras' permute function. Таким образом, он будет максимально объединять измерение времени.

Например:

seq_model = Permute((2, 1))(seq_model) 

seq_model = MaxPooling1D()(seq_model) 
+0

Я не вижу, как это решает его ... Может быть, я пропускаю что-то, но doc говорит, что Permute меняет только тусклый вектор ... Может быть, я не совсем понял, что мне нужно, отредактировал вопрос – bluesummers

Смежные вопросы