керас: использование выходных данных одной модели как части входных данных другой модели - PullRequest
1 голос
/ 20 апреля 2020

Допустим, я обучил авто-кодировщику (который дает мне encoder1, decoder1 и autoencoder1, который является объединением кодировщика1 и декодера1). у этого автоэнкодера было 3 скрытых узла в узком месте.

Теперь я хотел бы обучить другой авто-кодировщик (autoencoder 2). этот новый автоматический кодер имеет 6 узлов в узком месте. Я хотел бы использовать encoder1 для создания 3 входных узлов autoencoder2, а декодер 1 с другой стороны, например, так: enter image description here

, как вы можете видеть, есть 2 входы и два выхода, каждый со своими потерями. e1 и d1 построены, и я хочу построить автоматический кодер 2, который содержит все: e1, e2, d1, d2.

Теперь, если бы он просто соединял их вместе с 1 входом и выходом, я бы знал, как это сделать:

autoencoder2 = Model(inputs=input, ouptuts=d1(d2(e2(e1(input)))))

, но поскольку есть два входа, я не знаю, как это сделать. сделай это. Я просмотрел документацию по API, но я нашел то, что мне нужно. есть идеи?

1 Ответ

0 голосов
/ 20 апреля 2020

Попробуйте использовать кортежи:

model = Model(inputs=(e1, e2), outputs=(o1, o2))

Единственное требование - ваша функция forward, которая должна принимать и обрабатывать кортежи.

...