コード例 #1
0
ファイル: EpochDataServiceImpl.java プロジェクト: siupa/AI
 @Override
 public Epoch load(int evolutionId, long epochId, final PopulationConfiguration configuration)
     throws Exception {
   try {
     List<Probe> probes = dao.retrieve(evolutionId, epochId);
     if (probes != null && probes.size() > 0) {
       return Epoch.create(
           probes.get(0).getEpochId(),
           new Population(
               FluentIterable.from(probes)
                   .transform(
                       new Function<Probe, Genome>() {
                         @Override
                         public Genome apply(Probe input) {
                           return new Genome(
                               input.getGenomeId(),
                               input.getGenomeWeights(),
                               configuration.getPerceptronConfiguration());
                         }
                       })
                   .toList(),
               configuration,
               new DefaultPerceptronProvider()));
     } else {
       return null;
     }
   } catch (Exception e) {
     throw new Exception("Loading service failed. Latest epoch hasn't been loaded.", e);
   }
 }
コード例 #2
0
ファイル: EpochDataServiceImpl.java プロジェクト: siupa/AI
 @Override
 public void save(int evolutionId, DateTime createdOn, Epoch epoch) throws Exception {
   try {
     Population population = epoch.getPopulation();
     for (Genome g : population.getGenomes()) {
       dao.create(
           new Probe(
               ObjectId.get(),
               evolutionId,
               createdOn,
               epoch.getId(),
               g.getId(),
               g.getFitness(),
               g.getDna()));
     }
   } catch (Exception e) {
     throw new Exception(
         "Saving service failed. Epoch for evolutionId %d and epochId %d hasn't been persisted.",
         e);
   }
 }