code: def embed(self, X, H, Y=None):
      if self.constrained_embedding:
          E, O, B = self.embed_constrained(X, Y)
      elif self.embedding > 0:
          E, O, B = self.embed_separate(X, Y)
      else:
          E, O, B = self.embed_gru(X, H[0], Y)
      return E, O, B
  
imports: from collections import Counter
  import numpy
  import torch
  from torch import nn
  from torch.autograd import Variable
  from torch.optim import Optimizer
  from cornac.utils.common import get_rng
label_desc: Use image node_id 13 for calling the GRU4RecModel obj's underlying member method code with example usage: obj.embed(X, H, Y) and returns: E,  O,  B