class_docstr: Variational Dropout RNN 实现.
  
  论文参考: `A Theoretically Grounded Application of Dropout in Recurrent Neural Networks (Yarin Gal and Zoubin Ghahramani, 2016)
  https://arxiv.org/abs/1512.05287`.
class_docstr_tok: ["Variational","Dropout","RNN","\u5b9e\u73b0",".","\u8bba\u6587\u53c2\u8003",":","`","A","Theoretically","Grounded","Application","of","Dropout","in","Recurrent","Neural","Networks","(","Yarin","Gal","and","Zoubin","Ghahramani",",","2016",")","https",":","\/\/arxiv.org\/abs\/1512.05287","`","."]
code: def _forward_one(
      self, n_layer, n_direction, input, hx, mask_x, mask_h
  ):
      is_lstm = self.is_lstm
      idx = self.num_directions * n_layer + n_direction
      cell = self._all_cells[idx]
      hi = (hx[0][idx], hx[1][idx]) if is_lstm else hx[idx]
      output_x, hidden_x = cell(
          input, hi, mask_x, mask_h, is_reversed=(n_direction == 1)
      )
      return output_x, hidden_x
  
imports: import torch
  import torch.nn
  from torch.nn.utils.rnn import PackedSequence, pack_padded_sequence, pad_packed_sequence
label_desc: Use image node_id 2 for calling the VarRNNBase obj's underlying member method code with example usage: obj._forward_one(n_layer, n_direction, input, hx, mask_x, mask_h) and returns: output_x,  hidden_x