Керас тренирует 2 модели одновременно - PullRequest
0 голосов
/ 24 октября 2018

У меня есть 2 модели: модель1 и модель2.

Мне нужно взять выходные данные модели 1, манипулировать myData вручную и установить их (манипулированные myData) в качестве входных данных для модели 2.

выходные данные model2 - это классификация ответов myData (для манипулирования выходными данными модели1)Относительно предопределенной классификации (т.е. контролируемой).

  1. Мне нужно улучшить выход модели1 и улучшить классификацию модели2 одновременно.Однако в тестировании я буду работать с каждой моделью отдельно.
  2. По моему мнению, мне нужно использовать функцию стоимости модели 2 в качестве функции стоимости модели 1 - как это можно сделать?
  3. Есть еще идеи, как это можно сделать?

Подчеркиваю: объединение НЕ решает проблему.

Пожалуйста, обратитесь к приложенной схеме

1 Ответ

0 голосов
/ 24 октября 2018

Ну, общий эскиз будет выглядеть следующим образом:

# define model 1 architecture
...

# define model 2 architecture
...

# define manipulation logic
out1 = model1.output  # get the output of model1
out1 = SomeLayer()(out1)  # apply any number of layers as you wish
...

out_final = model2(out1) # feed the manipulated output to model2

# define the joint model
final_model = Model(model1.input, out_final)

# compile the model ...
final_model.compile(loss=..., optimizer=...) # loss is computed based on the output of model2

# fit the model
final_model.fit(...)

Таким образом, model1 и model2 будут обучаться одновременно, а также вы можете использовать их независимо (например, используйте model1.predict() илиmodel2.predict()).

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