code: def lstm_without_dropout(n_layer, dropout, hx, cx, ws, bs, xs):
      xws = [_stack_weight([w[2], w[0], w[1], w[3]]) for w in ws]
      hws = [_stack_weight([w[6], w[4], w[5], w[7]]) for w in ws]
      xbs = [_stack_weight([b[2], b[0], b[1], b[3]]) for b in bs]
      hbs = [_stack_weight([b[6], b[4], b[5], b[7]]) for b in bs]
      xs = [xs[i] for i in range(3)]
      ys = []
      for x in xs:
          cx_next = []
          hx_next = []
          for layer in range(n_layer):
              c = cx[layer]
              h = hx[layer]
  
              if layer != 0:
                  # Only multiply ratio
                  x = x * (1 / (1.0 - dropout))
              lstm_in = F.linear(x, xws[layer], xbs[layer]) + F.linear(
                  h, hws[layer], hbs[layer]
              )
              c_new, h_new = F.lstm(c, lstm_in)
              cx_next.append(c_new)
              hx_next.append(h_new)
              x = h_new
          cx = cx_next
          hx = hx_next
          ys.append(x)
      cy = F.stack(cx)
      hy = F.stack(hx)
      return hy, cy, ys
  
imports: import unittest
  import numpy
  import chainer
  from chainer.backends import cuda
  import chainer.functions
  from chainer import testing
  from chainer.testing import attr
  from chainer.testing import backend
  from chainer.testing import condition
label_desc: Use image node_id 6 for calling a global function with example usage: lstm_without_dropout(n_layer, dropout, hx, cx, ws, bs, xs) and returns: hy,  cy,  ys