Skip to content

Instantly share code, notes, and snippets.

@jovianlin
Created November 23, 2017 16:38
Show Gist options
  • Save jovianlin/484d56a3ca1ca0962d928d70df77ea9a to your computer and use it in GitHub Desktop.
Save jovianlin/484d56a3ca1ca0962d928d70df77ea9a to your computer and use it in GitHub Desktop.
Keras: multiple inputs & outputs
from keras.models import Model
from keras.layers import Input, Dense
input_1 = Input(..., name='input_1')
x = Dense(...)(input_1)
x = Dense(...)(x)
...
output_1 = Dense(dim_output_1, ..., name='output_1')
input_2 = Input(..., name='input_2')
x = keras.layers.concatenate([output_1, input_2])
x = Dense(...)(x)
x = Dense(...)(x)
x = Dense(...)(x)
output_2 = Dense(dim_output_2, ..., name='output_2')(x)
model = Model(inputs=[input_1, input_2],
outputs=[output_1, output_2])
model.compile(...,
loss={'output_1': 'binary_crossentropy',
'output_2': 'binary_crossentropy'},
loss_weights={'output_1': weight_1,
'output_2': weight_2})
model.fit({'input_1': data_input_1,
'input_2': data_input_2},
{'output_1': data_output_1,
'output_2': data_output_2},
...)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment