diff --git a/keras/layers/core.py b/keras/layers/core.py index bb04e9237..bb0099be5 100644 --- a/keras/layers/core.py +++ b/keras/layers/core.py @@ -5,6 +5,8 @@ import theano import theano.tensor as T import numpy as np +from collections import OrderedDict + from .. import activations, initializations, regularizers, constraints from ..utils.theano_utils import shared_zeros, floatX from ..utils.generic_utils import make_tuple @@ -231,6 +233,15 @@ class Merge(Layer): elif self.mode == 'concat': inputs = [self.layers[i].get_output(train) for i in range(len(self.layers))] return T.concatenate(inputs, axis=self.concat_axis) + elif self.mode == 'join': + inputs = OrderedDict() + for i in range(len(self.layers)): + X = self.layers[i].get_output(train) + if X.name is None: + raise ValueError("merge_mode='join' only works with named inputs") + else: + inputs[X.name] = self.layers[i].get_output(train) + return inputs elif self.mode == 'mul': s = self.layers[0].get_output(train) for i in range(1, len(self.layers)):