Как я могу добавить еще один входной слой к модели с несколькими входами, используя функциональные API? - PullRequest
0 голосов
/ 10 мая 2019

У меня уже есть модель, которая имеет несколько входных слоев.Теперь я хочу добавить слои перед одним из этих входных слоев.Что мне делать?

# this is my current model, it has two inputs m1_in and aux_in
model = Model(inputs=[m1_in, aux_in], outputs=[m2_out])

# build some new layers
x = Input(shape=(32,))
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
output = Dense(1, activation='sigmoid', name='main_output')(x)

# now I want feed the result of the output layer to the input layer m1_in

Моя проблема в том, что я не могу использовать здесь функциональный API, например new_output = model(output), поскольку model имеет несколько входов.Я не могу указать, какой входной слой я хочу подключить.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Сначала вы должны назвать все свои слои x, но называть их именами как dense_1 Я не понимаю, что вы хотите, но, может быть, такие вещи

# this is my current model

# build some new layers
in_ = Input(shape=(32,))
dense_1 = Dense(64, activation='relu')(in_)
dense_2 = Dense(64, activation='relu')(dense_1)
dense_3 = Dense(64, activation='relu')(dense_2)
dense_4 = Dense(1, activation='sigmoid', name='main_output')(dense_3)

model = Model(inputs=[m1_in, aux_in, in_], outputs=[dense_4])

или последняя строка

model = Model(inputs=[in_], outputs=[dense_4])

Но вы должны быть более конкретным?

0 голосов
/ 10 мая 2019

Вам необходимо создать модель для новых слоев, определить новые входные данные, а затем определить новую комбинированную модель.Убедитесь, что не потеряете входные данные для исходных слоев (x).

# Model for new layers
comb_model = Model(x, output)

# New inputs
new_m1_in = Input(...)
new_aux_in = Input(...)

# Apply new model for new layers
comb_m1 = comb_model(new_m1_in)

# Apply old model with new model input
final_out = model(comb_m1, new_aux_in)

# Build final model
final_model = Model([new_m1_in, new_aux_in], final_out)

Надеюсь, это сработает.В этом прелесть Функционального API:)

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