title: keras merge AttributeError: 'Merge' object has no attribute 'is_placeholder'
body: <p>I have been trying to get some open source code to run, but can get out of this one error. </p>
  
  <pre><code>mnist = input_data.read_data_sets('../../MNIST_data', one_hot=True)
  X_train = mnist.train.images
  y_train = mnist.train.labels
  
  X = Input(batch_shape=(m, n_x))
  cond = Input(batch_shape=(m, n_y))
  merged = merge([X, cond], mode='concat', concat_axis=1)
  inputs = merged  # I tried sub X instead of merged, then it works
  
  ...................
  # middle layer code derives outputs, which is irrelevant to this error
  
  vae = Model(inputs, outputs)
  </code></pre>
  
  <p>The important thing is the last line which blows up complaining about no attribute.</p>
  
  <pre><code>  File "cvae_keras.py", line 74, in &lt;module&gt;
      vae = Model(inputs, outputs)
    File "/Users/bruceho/anaconda/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 88, in wrapper
      return func(*args, **kwargs)
    File "/Users/bruceho/anaconda/lib/python2.7/site-packages/keras/engine/topology.py", line 1566, in __init__
      if layer.is_placeholder:
  AttributeError: 'Merge' object has no attribute 'is_placeholder'
  </code></pre>
  
  <p>But both merged and X are of the type tensorflow.python.framework.ops.Tensor, and if I swap out merged as input, and sub with X, then no such error. </p>
  
  <p>Why wouldn't the statement accept the merged version of the Tensor object?</p>