【发布时间】:2019-02-25 08:45:05
【问题描述】:
假设我有两个输入: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训练这个联合自编码器?
谢谢
【问题讨论】:
标签: python keras deep-learning keras-layer autoencoder