code: def tell(self, hyperparameter_pop, fitnesses):
      adjusted_fitnesses = -1 * np.array(fitnesses)
      self.best_fitnesses.append(float(np.max(fitnesses)))
      self.mean_fitnesses.append(float(np.mean(fitnesses)))
      self.best = (
          hyperparameter_pop[np.argmax(fitnesses)],
          self.__pack_solution(
              hyperparameter_pop[np.argmax(fitnesses)]
          ),
      )
  
      solutions = [
          self.__pack_solution(hyperparameters)
          for hyperparameters in hyperparameter_pop
      ]
      self.es.tell(solutions, adjusted_fitnesses)
      self.gen += 1
      self.__save_checkpoint()
  
imports: import cma
  import random
  import copy
  import pickle
  import os
  import pprint
  import time
  import six
  import numpy
  from opt_util import EPSILON
label_desc: Use image node_id 7 for calling the Optimizer obj's underlying member method code with example usage: obj.tell(hyperparameter_pop, fitnesses) without return types