#machine-learning #keras #deep-learning #data-science
Вопрос:
Я хочу взять вывод «model_stage_1» и объединить его с другими данными в качестве входных данных для другой модели. Ниже приведен мой подход.
model_stage_1 = Model(inputs=[audio_input, text_input], outputs=[audio_text])
--- some other part of the model--
audio_x2 = Conv1D(filters=128, kernel_size=8, activation='relu')(audio_input)
audio_x2 = Dense(32)(audio_x2)
pic_x = Conv2D(32, kernel_size=(3, 3), padding="same")(pic_input)
pic_x = Dense(32)(pic_x)
[stage_1_output] = model_stage_1.outputs
pic_audio_text = concatenate([stage_1_output, pic_x, audio_x2])
pic_audio_text = Dense(32)(pic_audio_text)
out = Dense(laugh_output_dim, activation='sigmoid')(pic_audio_text)
model = Model(inputs=[audio_input, pic_input, text_input], outputs=[out])
model.compile(optimizer=opt, loss="binary_crossentropy", metrics=['accuracy'])
Является ли это правильным способом получить выходные данные из одной модели и объединить их с другими данными?
Пожалуйста, поправьте меня, если я ошибаюсь.
Комментарии:
1. две вещи кажутся сомнительными: (1) Зачем компилировать model_stage_1; планируете ли вы вызывать его отдельно от «модели»? Я не уверен, что TF будет жаловаться. (2) Будет ли «объединение» работать, если текст, аудио и видео имеют очень разные формы?
2. @MarkLavin Вы правы. Этап компиляции не требуется. Вопрос изменился. Спасибо, что указали на это. Но для 2-го вопроса конкатенация будет работать здесь, так как формы в конце одинаковы
3. Насколько я знаю, это правильный путь. Альтернативой было бы использование функционального API keras.