<p>Merge layers performs the operation selected. For detail keras documentations: <a href="https://keras.io/layers/merge/" rel="nofollow noreferrer">https://keras.io/layers/merge/</a>.
Add: Adds list of inputs, tensors in case of Keras Model.
Multiply: Element-wise multiplication of a list of inputs.
and so on. </p>

<p>Therefore, select according to your application. The effect would be different, for scientific comments please go through:</p>

<ul>
<li>ResNet (uses addition) <a href="https://arxiv.org/abs/1512.03385" rel="nofollow noreferrer">https://arxiv.org/abs/1512.03385</a> </li>
<li>UNET (uses concatenation)<a href="https://arxiv.org/abs/1505.04597" rel="nofollow noreferrer">https://arxiv.org/abs/1505.04597</a>. </li>
</ul>

<p>In you are from CV background, this paper would give you more insights: <a href="https://arxiv.org/pdf/1611.06612.pdf" rel="nofollow noreferrer">https://arxiv.org/pdf/1611.06612.pdf</a> </p>
Which merge layers to use in keras?
<p>Keras has many different ways of merging inputs like <code>Add()</code>, <code>Subtract()</code>, <code>Multiply()</code>, <code>concatenate()</code>, etc...</p>

<p>Do they all have the same effect or are there situations where one is preferable?</p>