class_docstr: Fully-connected state-input continuous Q-function.
  
  See: https://arxiv.org/abs/1603.00748
  
  Args:
      n_input_channels: number of input channels
      n_dim_action: number of dimensions of action space
      n_hidden_channels: number of hidden channels
      n_hidden_layers: number of hidden layers
      action_space: action_space
      scale_mu (bool): scale mu by applying tanh if True
class_docstr_tok: ["Fully-connected","state-input","continuous","Q-function",".","See",":","https",":","\/\/arxiv.org\/abs\/1603.00748","Args",":","n_input_channels",":","number","of","input","channels","n_dim_action",":","number","of","dimensions","of","action","space","n_hidden_channels",":","number","of","hidden","channels","n_hidden_layers",":","number","of","hidden","layers","action_space",":","action_space","scale_mu","(","bool",")",":","scale","mu","by","applying","tanh","if","True"]
code: def forward(self, state):
      h = state
      for layer in self.hidden_layers:
          h = F.relu(layer(h))
      v = self.v(h)
      mu = self.mu(h)
  
      if self.scale_mu:
          mu = scale_by_tanh(
              mu, high=self.action_space.high, low=self.action_space.low
          )
  
      mat_diag = torch.exp(self.mat_diag(h))
      if hasattr(self, "mat_non_diag"):
          mat_non_diag = self.mat_non_diag(h)
          tril = lower_triangular_matrix(mat_diag, mat_non_diag)
          mat = torch.matmul(tril, torch.transpose(tril, 1, 2))
      else:
          mat = torch.unsqueeze(mat_diag**2, dim=2)
      return QuadraticActionValue(
          mu,
          mat,
          v,
          min_action=self.action_space.low,
          max_action=self.action_space.high,
      )
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from pfrl.action_value import DiscreteActionValue, DistributionalDiscreteActionValue, QuadraticActionValue
  from pfrl.functions.lower_triangular_matrix import lower_triangular_matrix
  from pfrl.initializers import init_chainer_default
  from pfrl.nn import Lambda
  from pfrl.nn.mlp import MLP
  from pfrl.q_function import StateQFunction
label_desc: Use image node_id 2 for calling the FCQuadraticStateQFunction obj's underlying member method code with example usage: obj.forward(state) and returns: QuadraticActionValue