code: def lstm_cell(x, h, c, name=None, reuse=False):
      """LSTM returning hidden state and content cell at a specific timestep."""
      nin = x.shape[-1].value
      nout = h.shape[-1].value
      with tf.variable_scope(
          name, default_name="lstm", values=[x, h, c], reuse=reuse
      ):
          wx = tf.get_variable(
              "kernel/input",
              [nin, nout * 4],
              dtype=tf.float32,
              initializer=tf.orthogonal_initializer(1.0),
          )
          wh = tf.get_variable(
              "kernel/hidden",
              [nout, nout * 4],
              dtype=tf.float32,
              initializer=tf.orthogonal_initializer(1.0),
          )
          b = tf.get_variable(
              "bias",
              [nout * 4],
              dtype=tf.float32,
              initializer=tf.constant_initializer(0.0),
          )
  
      z = tf.matmul(x, wx) + tf.matmul(h, wh) + b
      i, f, o, u = tf.split(z, 4, axis=1)
      i = tf.sigmoid(i)
      f = tf.sigmoid(f + 1.0)
      o = tf.sigmoid(o)
      u = tf.tanh(u)
      c = f * c + i * u
      h = o * tf.tanh(c)
      return h, c
  
file_path: edward/examples/lstm.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import edward
  import numpy
  import os
  import string
  import tensorflow
  from datetime import datetime
  from edward.models import Categorical
  from edward.util import Progbar
  from observations import text8
label_desc: Use image node_id 1 for calling a global function with example usage: lstm_cell(x, h, c, name, reuse) and returns: h,  c