Предположим, у меня есть два входа: X
и Y
, и я хочу спроектировать и объединить автоэнкодер для реконструкции X'
и Y'
.
как на рисунке, X
— это аудиовход, а Y
— видеовход. Эта глубокая архитектура хороша тем, что имеет два входа и два выхода. Более того, они разделяют некий слой посередине. Мой вопрос в том, как использовать Keras
для написания этого автоэнкодера. Предположим, что каждый слой полностью подключен, за исключением общего слоя в середине.
вот мой код следующим образом:
from keras.layers import Input, Dense
from keras.models import Model
import numpy as np
X = np.random.random((1000, 100))
y = np.random.random((1000, 300)) # x and y can be different size
# the X autoencoder layer
Xinput = Input(shape=(100,))
encoded = Dense(50, activation='relu')(Xinput)
encoded = Dense(20, activation='relu')(encoded)
encoded = Dense(15, activation='relu')(encoded)
decoded = Dense(20, activation='relu')(encoded)
decoded = Dense(50, activation='relu')(decoded)
decoded = Dense(100, activation='relu')(decoded)
# the Y autoencoder layer
Yinput = Input(shape=(300,))
encoded = Dense(120, activation='relu')(Yinput)
encoded = Dense(50, activation='relu')(encoded)
encoded = Dense(15, activation='relu')(encoded)
decoded = Dense(50, activation='relu')(encoded)
decoded = Dense(120, activation='relu')(decoded)
decoded = Dense(300, activation='relu')(decoded)
У меня просто посередине 15
узлов для X
и Y
. У меня вопрос, как обучить этот совместный автоэнкодер с функцией потерь \|X-X'\|^2 + \|Y-Y'\|^2
?
Спасибо