class_docstr: Linear layer in Factorized Noisy Network
  
  Args:
      mu_link (nn.Linear): Linear link that computes mean of output.
      sigma_scale (float): The hyperparameter sigma_0 in the original paper.
          Scaling factor of the initial weights of noise-scaling parameters.
code: def forward(self, x):
      # use info of sigma.W to avoid strange error messages
      dtype = self.sigma.weight.dtype
      out_size, in_size = self.sigma.weight.shape
  
      eps = self._eps(
          in_size + out_size, dtype, self.sigma.weight.device
      )
      eps_x = eps[:in_size]
      eps_y = eps[in_size:]
      W = torch.addcmul(
          self.mu.weight, self.sigma.weight, torch.ger(eps_y, eps_x)
      )
      if self.hasbias:
          b = torch.addcmul(self.mu.bias, self.sigma.bias, eps_y)
          return F.linear(x, W, b)
      else:
          return F.linear(x, W)
  
file_path: pfrl/pfrl/nn/noisy_linear.py
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 3 for calling the FactorizedNoisyLinear obj's underlying member method code with example usage: obj.forward(x) and returns: F, F