class_docstr: A wrapper of CR-FM-NES Eigen version.
class_docstr_tok: ["A","wrapper","of","CR-FM-NES","Eigen","version","."]
code: def __init__(
      self,
      param_size: int,
      pop_size: int,
      init_params: Optional[Union[jnp.ndarray, np.ndarray]] = None,
      init_stdev: float = 0.1,
      seed: int = 0,
      logger: logging.Logger = None,
  ):
      if logger is None:
          self.logger = create_logger(name="FCRFMC")
      else:
          self.logger = logger
      self.pop_size = pop_size
  
      if init_params is None:
          center = np.zeros(abs(param_size))
      else:
          center = init_params
  
      try:
          from numpy.random import MT19937, Generator
          from fcmaes import crfmnescpp
  
      except ModuleNotFoundError:
          print("You need to install fcmaes:")
          print("  pip install fcmaes --upgrade")
          sys.exit(1)
  
      self.fcrfm = crfmnescpp.CRFMNES_C(
          param_size,
          None,
          center,
          init_stdev,
          pop_size,
          Generator(MT19937(seed)),
      )
  
      self.params = None
      self._best_params = None
      self.maxy = -math.inf
  
      self.jnp_array = jax.jit(jnp.array)
      self.jnp_stack = jax.jit(jnp.stack)
  
file_path: evojax/evojax/algo/fcrfmc.py
imports: import sys
  import logging
  import numpy
  import math
  from typing import Union
  from typing import Optional
  import jax
  import jax.numpy
  from evojax.algo.base import NEAlgorithm
  from evojax.util import create_logger
label_desc: Use image node_id 1 to create a new FCRFMC object from inherited base classes: NEAlgorithm with example: obj = FCRFMC(param_size, pop_size, init_params, init_stdev, seed, logger)