class_docstr: Fully-connected (s,a)-input Q-function with late action input.
  
  Actions are not included until the second hidden layer and not normalized.
  This architecture is used in the DDPG paper:
  http://arxiv.org/abs/1509.02971
  
  Args:
      n_dim_obs (int): Number of dimensions of observation space.
      n_dim_action (int): Number of dimensions of action space.
      n_hidden_channels (int): Number of hidden channels.
      n_hidden_layers (int): Number of hidden layers. It must be greater than
          or equal to 1.
      nonlinearity (callable): Nonlinearity between layers. It must accept a
          Variable as an argument and return a Variable with the same shape.
          Nonlinearities with learnable parameters such as PReLU are not
          supported.
      last_wscale (float): Scale of weight initialization of the last layer.
code: def forward(self, state, action):
      h = self.nonlinearity(self.obs_mlp(state))
      h = torch.cat((h, action), dim=1)
      return self.mlp(h)
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from pfrl.initializers import init_lecun_normal
  from pfrl.nn.mlp import MLP
  from pfrl.nn.mlp_bn import MLPBN
  from pfrl.q_function import StateActionQFunction
label_desc: Use image node_id 2 for calling the FCLateActionSAQFunction obj's underlying member method code with example usage: obj.forward(state, action) and returns: self