Viene utilizzato per diversi motivi, in sostanza viene utilizzato per unire più reti insieme. Un buon esempio potrebbe essere quello in cui hai due tipi di input, ad esempio tag e un'immagine. È possibile creare una rete che ad esempio abbia:
IMMAGINE -> Conv -> Max Pooling -> Conv -> Max Pooling -> Denso
TAG -> Incorporamento -> Livello denso
Per combinare queste reti in una previsione e formarle insieme, è possibile unire questi livelli Dense prima della classificazione finale.
Le reti in cui hai più input sono l'uso più 'ovvio' di loro, ecco un'immagine che combina parole e immagini all'interno di un RNN, la parte Multimodale è dove i due input sono uniti:

Un altro esempio è il livello di Inception di Google in cui hai diverse convoluzioni che vengono aggiunte di nuovo prima di passare al livello successivo.
Per alimentare più input a Keras è possibile passare un elenco di array. Nell'esempio di parola / immagine avresti due elenchi:
x_input_image = [image1, image2, image3]
x_input_word = ['Feline', 'Dog', 'TV']
y_output = [1, 0, 0]
Quindi puoi adattarti come segue:
model.fit(x=[x_input_image, x_input_word], y=y_output]