class_docstr: Linear layer following cosine basis functions.
  
  Args:
      n_basis_functions (int): Number of cosine basis functions.
      out_size (int): Output size.
docstr: Evaluate.
  
  Args:
      x (ndarray): Input.
  
  Returns:
      chainer.Variable: Output with shape of (x.shape + (out_size,)).
docstr_tok: ["Evaluate",".","Args",":","x","(","ndarray",")",":","Input",".","Returns",":","chainer.Variable",":","Output","with","shape","of","(","x.shape","+","(","out_size",",",")",")","."]
code: def __call__(self, x):
      """Evaluate.
  
      Args:
          x (ndarray): Input.
  
      Returns:
          chainer.Variable: Output with shape of (x.shape + (out_size,)).
      """
      h = cosine_basis_functions(x, self.n_basis_functions)
      h = F.reshape(h, (-1, self.n_basis_functions))
      out = self.linear(h)
      out = F.reshape(out, x.shape + (self.out_size,))
      return out
  
imports: import chainer
  from chainer import cuda
  import chainer.functions
  import chainer.links
  from chainerrl.action_value import QuantileDiscreteActionValue
  from chainerrl.agents import dqn
  from chainerrl.links import StatelessRecurrentChainList
label_desc: Use image node_id 2 for calling the CosineBasisLinear obj's underlying member method code with example usage: obj.__call__(x) and returns: out