Слияние тензора от 3х10 до 1х10, какие методы использовать? - PullRequest
0 голосов
/ 27 мая 2019

Я сделал некоторую модель, которая в итоге будет выводить тензор 3 x 10. Причина, по которой он равен 3 x 10, заключается в том, что размер словаря равен 10, а в последовательности 3 элемента (это многолинейная последовательность проблема классификации). Этот тензор должен быть как-то мягко максирован до тензора 1х10. Может кто-нибудь дать мне объяснения о доступных методах и, может быть, какой-нибудь пример в Керасе?

Я видел несколько методов слияния в Keras, таких как усреднение или добавление. Они могут быть полезны в этом случае, но кажется, что для ввода нужны два или более тензоров. Поэтому мне, вероятно, нужно разделить тензор 3х10 на 3 тензора по 1х10 каждый и усреднить их. Может быть, есть лучшие способы добиться этого?

1 Ответ

2 голосов
/ 27 мая 2019

Простой способ добиться того, чего вы хотите - это использовать последний слой свертки 1x1.
Слой с ядром свертки 1 × 1 позволяет объединить тензор 3х10 в 1х10, и одновременно учится вес слияния во время тренировки.

Добавьте этот слой:

   output = Conv2D(1, (1, 1), activation='your_activation')(your_3x10_tensor)

Надеюсь, это то решение, которое вы искали!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...