class_docstr: Object which carries out genetic search and returns top performing model
  upon completion.
docstr: Initialize a DEvol object which carries out the training and evaluation
  of a genetic search.
  
  Args:
      genome_handler (GenomeHandler): the genome handler object defining
              the restrictions for the architecture search space
      data_path (str): the file which the genome encodings and metric data
              will be stored in
docstr_tok: ["Initialize","a","DEvol","object","which","carries","out","the","training","and","evaluation","of","a","genetic","search",".","Args",":","genome_handler","(","GenomeHandler",")",":","the","genome","handler","object","defining","the","restrictions","for","the","architecture","search","space","data_path","(","str",")",":","the","file","which","the","genome","encodings","and","metric","data","will","be","stored","in"]
code: def __init__(self, genome_handler, data_path=""):
      """
      Initialize a DEvol object which carries out the training and evaluation
      of a genetic search.
  
      Args:
          genome_handler (GenomeHandler): the genome handler object defining
                  the restrictions for the architecture search space
          data_path (str): the file which the genome encodings and metric data
                  will be stored in
      """
      self.genome_handler = genome_handler
      self.datafile = data_path or (datetime.now().ctime() + ".csv")
      self._bssf = -1
  
      if os.path.isfile(data_path) and os.stat(data_path).st_size > 1:
          raise ValueError(
              (
                  "Non-empty file %s already exists. Please change"
                  "file path to prevent overwritten genome data."
                  % data_path
              )
          )
  
      print(
          "Genome encoding and metric data stored at",
          self.datafile,
          "\n",
      )
      with open(self.datafile, "a") as csvfile:
          writer = csv.writer(
              csvfile,
              delimiter=",",
              quotechar='"',
              quoting=csv.QUOTE_MINIMAL,
          )
          metric_cols = ["Val Loss", "Val Accuracy"]
          genome = genome_handler.genome_representation() + metric_cols
          writer.writerow(genome)
  
imports: from __future__ import print_function
  import random
  import csv
  import operator
  import gc
  import os
  from datetime import datetime
  from keras.callbacks import EarlyStopping
  from keras.models import load_model
  import keras.backend
  from sklearn.metrics import log_loss
  import numpy
label_desc: Use image node_id 1 to create a new DEvol object  with example: obj = DEvol(genome_handler, data_path)