title: Batch normalization layer for CNN-LSTM
body: <p>Suppose that I have a model like this (this is a model for time series forecasting):</p>
  
  <pre><code>ipt   = Input((data.shape[1] ,data.shape[2])) # 1
  x     = Conv1D(filters = 10, kernel_size = 3, padding = 'causal', activation = 'relu')(ipt) # 2
  x     = LSTM(15, return_sequences = False)(x) # 3
  x = BatchNormalization()(x) # 4
  out   = Dense(1, activation = 'relu')(x) # 5
  </code></pre>
  
  <p>Now I want to add batch normalization layer to this network. Considering the fact that <a href="https://stackoverflow.com/questions/45493384/is-it-normal-to-use-batch-normalization-in-rnn-lstm-rnn/45495331">batch normalization doesn't work with LSTM</a>, Can I add it before <code>Conv1D</code> layer? I think it's rational to have a batch normalization layer after <code>LSTM</code>.</p>
  
  <p>Also, where can I add Dropout in this network? The same places? (after or before batch normalization?)</p>
  
  <ul>
  <li>What about adding <code>AveragePooling1D</code> between <code>Conv1D</code> and <code>LSTM</code>? Is it possible to add batch normalization between <code>Conv1D</code> and <code>AveragePooling1D</code> in this case without any effect on <code>LSTM</code> layer?</li>
  </ul>