code: def execute_fixed_length_rnn(
      xs_np,
      h0_np,
      w0_np,
      w_np,
      b_np,
      num_layers=1,
      nonlinearity="tanh",
      dropout=0.0,
      bidirectional=False,
      training=True,
  ):
      # Inputs are numpy arrays
      num_directions = 2 if bidirectional else 1
      seq_len = xs_np.shape[0]
      batch_size = xs_np.shape[1]
      hidden_size = h0_np.shape[3]
  
      xs = nn.Variable.from_numpy_array(xs_np)
      h0 = nn.Variable.from_numpy_array(h0_np)
      w0 = nn.Variable.from_numpy_array(w0_np)
      w = None
      b = None
      with_bias = False
      if num_layers > 1:
          w = nn.Variable.from_numpy_array(w_np)
      if type(b_np) is np.ndarray:
          b = nn.Variable.from_numpy_array(b_np)
          with_bias = True
  
      ys, hn = _create_fixed_length_rnn(
          xs,
          h0,
          w0,
          w,
          b,
          num_layers,
          nonlinearity,
          num_directions,
          with_bias,
      )  # returns Variables
  
      dummy = F.sink(ys, hn)
      dummy.forward()
  
      # returns numpy arrays
      ys = F.reshape(
          ys, (seq_len, batch_size, num_directions * hidden_size)
      )
      ys.forward()
      return ys.d, hn.d
  
file_path: nnabla/python/test/function/test_rnn.py
imports: import pytest
  import numpy
  import nnabla
  import nnabla.functions
  from nnabla.utils.rnn import _create_fixed_length_rnn
  from nbla_test_utils import list_context
label_desc: Use image node_id 1 for calling a global function with example usage: execute_fixed_length_rnn(xs_np, h0_np, w0_np, w_np, b_np, num_layers, nonlinearity, dropout, bidirectional, training) and returns: ys,  hn