The example below may be understandable! The 'dummy' model takes 1 input (image) and outputs 2 values. The model computes the MSE for each output.
x = Convolution2D(8, 5, 5, subsample=(1, 1))(image_input)
x = Activation('relu')(x)
x = Flatten()(x)
x = Dense(50, W_regularizer=l2(0.0001))(x)
x = Activation('relu')(x)
output1 = Dense(1, activation='linear', name='output1')(x)
output2 = Dense(1, activation='linear', name='output2')(x)
model = Model(input=image_input, output=[output1, output2])
model.compile(optimizer='adam', loss={'output1': 'mean_squared_error', 'output2': 'mean_squared_error'})
. x y, y = [y1, y2]
batch_generator(x, y, batch_size):
....transform images
....generate batch batch of size: batch_size
yield(X_batch, {'output1': y1, 'output2': y2} ))
, fit_generator()
model.fit_generator(batch_generator(X_train, y_train, batch_size))