class_docstr: Based on
  https://github.com/pytorch/examples/blob/master/word_language_model/model.py
  
  TODO(brendan): RL controllers do not necessarily have much to do with
  language models.
  
  Base the controller RNN on the GRU from:
  https://github.com/ikostrikov/pytorch-a2c-ppo-acktr/blob/master/model.py
code: def forward(
      self,  # pylint:disable=arguments-differ
      inputs,
      hidden,
      block_idx,
      is_embed,
  ):
      if not is_embed:
          embed = self.encoder(inputs)
      else:
          embed = inputs
  
      hx, cx = self.lstm(embed, hidden)
      logits = self.decoders[block_idx](hx)
  
      logits /= self.args.softmax_temperature
  
      # exploration
      if self.args.mode == "train":
          logits = self.args.tanh_c * F.tanh(logits)
  
      return logits, (hx, cx)
  
file_path: ENAS-pytorch/models/controller.py
imports: import collections
  import os
  import torch
  import torch.nn.functional
  import utils
  from utils import Node
label_desc: Use image node_id 3 for calling the Controller obj's underlying member method code with example usage: obj.forward(inputs, hidden, block_idx, is_embed) and returns: logits,  hx,  cx