#python #keras #deep-learning #pytorch
Вопрос:
Я пытаюсь выполнить задачу аппроксимации двух вложений (текстового и визуального). Для визуального встраивания я использую VGG в качестве кодера. Результатом является 1x1000
встраивание. Для текстового кодера я использую трансформатор, выход которого имеет форму 1x712
. Я хочу преобразовать оба этих вектора в одно и то же измерение 512.
img_features.shape, txt_features.shape = (1,1000),(1,712)
Как я могу это сделать в PyTorch?
Добавьте последний слой в каждую архитектуру, которая моделирует выходные данные до 512?
Ответ №1:
- Вы можете либо применить дифференцируемый оператор PCA, такой как
torch.pca_lowrank
. - В качестве альтернативы более простым решением является использование двух полностью подключенных слоев адаптера для изучения двух сопоставлений. Один для ваших функций изображения
1000 -> n
, другой для текстовых функций:712 -> n
. Затем вы можете выбрать стратегию слияния, чтобы объединить две сформированные функции(1,n)
: либо с помощью объединения, точечного сложения/умножения (в этих случаяхn
должно быть равно512
. Если вы можете изучить окончательное сопоставлениеn*2 -> 512
.