Рекомендации по внедрению архитектуры в Керасе - PullRequest
0 голосов
/ 23 сентября 2019

Какой простой способ реализовать следующую архитектуру с использованием Keras.

C2AE architecture

Два входных кодера объединены, и частичный выходной сигнал передан декодеру.Потеря последнего уровня распространяется на объединенный уровень, а разность между двумя кодерами возвращается обратно в один кодер;разница между двумя сетями добавляется к потерям на выходе с обратным распространением и передается в другую сеть.

1 Ответ

0 голосов
/ 24 сентября 2019

Я начал реализовывать это следующим образом:

Y=Input(shape=(100,),name='Fe_input')
y=Dense(100, activation=LeakyReLU(alpha=0.0001))(Y)
y=BatchNormalization()(y)
y=Dense(60, activation=LeakyReLU(alpha=0.0001))(y)
y=BatchNormalization()(y)
y=Dense(20, activation=LeakyReLU(alpha=0.0001))(y)
y=BatchNormalization()(y)

X=Input(shape=(512,),name='Fx_input')
x=Dense(100, activation=LeakyReLU(alpha=0.0001))(X)
x=BatchNormalization()(x)
x=Dense(60, activation=LeakyReLU(alpha=0.0001))(x)
x=BatchNormalization()(x)
x=Dense(20, activation=LeakyReLU(alpha=0.0001))(x)
x=BatchNormalization()(x)

merge_layer=concatenate([x,y], name='merge_layer')
# I need to push partial output to merge layer to the next layer. Not sure how to       
#do that.
x=Dense(60, activation=LeakyReLU(alpha=0.0001))(x)
x=BatchNormalization()(x)

Fd=Dense(100, activation='sigmoid')(x)
model=Model([X,Y],[merge_layer, Fd])
model.compile(...)

Как я могу взять частичный вывод и отправить его через часть декодера?Кроме того, как можно суммировать градиент во время backprop и выдвинуть к одной из ветвей?

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