title: Cannot replace LSTMBlockCell with LSTMBlockFusedCell in Python TensorFlow
body: <p>Replacing <a href="https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/LSTMBlockCell" rel="noreferrer"><code>LSTMBlockCell</code></a> with <a href="https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/LSTMBlockFusedCell" rel="noreferrer"><code>LSTMBlockFusedCell</code></a> throws a TypeError in static_rnn`. I'm using TensorFlow 1.2.0-rc1 compiled from source.</p>
  
  <p>The full error message:</p>
  
  <pre class="lang-none prettyprint-override"><code>---------------------------------------------------------------------------
  TypeError                                 Traceback (most recent call last)
  &lt;ipython-input-3-2986e054cb6b&gt; in &lt;module&gt;()
       19     enc_cell = tf.contrib.rnn.LSTMBlockFusedCell(rnn_size)
       20     enc_layers = tf.contrib.rnn.MultiRNNCell([enc_cell] * num_layers, state_is_tuple=True)
  ---&gt; 21     _, enc_state = tf.contrib.rnn.static_rnn(enc_layers, enc_input_unstacked, dtype=dtype)
       22 
       23 with tf.variable_scope('decoder'):
  
  ~/Virtualenvs/scikit/lib/python3.6/site-packages/tensorflow/python/ops/rnn.py in static_rnn(cell, inputs, initial_state, dtype, sequence_length, scope)
     1139 
     1140   if not _like_rnncell(cell):
  -&gt; 1141     raise TypeError("cell must be an instance of RNNCell")
     1142   if not nest.is_sequence(inputs):
     1143     raise TypeError("inputs must be a sequence")
  
  TypeError: cell must be an instance of RNNCell
  </code></pre>
  
  <p>Code to reproduce:</p>
  
  <pre class="lang-py prettyprint-override"><code>import tensorflow as tf
  
  batch_size = 8
  enc_input_length = 1000
  
  dtype = tf.float32
  rnn_size = 8
  num_layers = 2
  
  enc_input = tf.placeholder(dtype, shape=[batch_size, enc_input_length, 1])
  enc_input_unstacked = tf.unstack(enc_input, axis=1)
  
  with tf.variable_scope('encoder'):
      enc_cell = tf.contrib.rnn.LSTMBlockFusedCell(rnn_size)
      enc_layers = tf.contrib.rnn.MultiRNNCell([enc_cell] * num_layers)
      _, enc_state = tf.contrib.rnn.static_rnn(enc_layers, enc_input_unstacked, dtype=dtype)
  </code></pre>
  
  <p><code>_like_rnncell</code> looks like:</p>
  
  <pre class="lang-py prettyprint-override"><code>def _like_rnncell(cell):
    """Checks that a given object is an RNNCell by using duck typing."""
    conditions = [hasattr(cell, "output_size"), hasattr(cell, "state_size"),
                  hasattr(cell, "zero_state"), callable(cell)]
    return all(conditions)
  </code></pre>
  
  <p>Turns out <code>LSTMBlockFusedCell</code> doesn't have the <code>output_size</code> and <code>state_size</code> properties that <code>LSTMBlockCell</code> implements.</p>
  
  <p>Is this a bug, or is there a way to use <code>LSTMBlockFusedCell</code> that I'm missing.</p>