Ignore:
Timestamp:
Feb 25, 2013, 5:28:57 PM (12 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
edac7c
Parents:
2ba2ed
git-author:
Frederik Heber <heber@…> (11/14/12 10:06:53)
git-committer:
Frederik Heber <heber@…> (02/25/13 17:28:57)
Message:

Added getTrainingOutputAverage() used to initialize all_energy_offset in LevMartester.

Location:
src/FunctionApproximation
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/FunctionApproximation/TrainingData.cpp

    r2ba2ed rdd8094  
    3838#include "TrainingData.hpp"
    3939
     40#include <algorithm>
    4041#include <boost/bind.hpp>
     42#include <boost/lambda/lambda.hpp>
    4143#include <iostream>
    4244
    4345#include "CodePatterns/Assert.hpp"
     46#include "CodePatterns/Log.hpp"
    4447#include "CodePatterns/toString.hpp"
    4548
     
    125128}
    126129
     130const FunctionModel::results_t TrainingData::getTrainingOutputAverage() const
     131{
     132  if (EnergyVector.size() != 0) {
     133    FunctionApproximation::outputs_t::const_iterator outiter = EnergyVector.begin();
     134    FunctionModel::results_t result(*outiter);
     135    for (++outiter; outiter != EnergyVector.end(); ++outiter)
     136      for (size_t index = 0; index < (*outiter).size(); ++index)
     137        result[index] += (*outiter)[index];
     138    LOG(2, "DEBUG: Sum of EnergyVector is " << result << ".");
     139    const double factor = 1./EnergyVector.size();
     140    std::transform(result.begin(), result.end(), result.begin(),
     141        boost::lambda::_1 * factor);
     142    LOG(2, "DEBUG: Average EnergyVector is " << result << ".");
     143    return result;
     144  }
     145  return FunctionModel::results_t();
     146}
     147
    127148std::ostream &operator<<(std::ostream &out, const TrainingData &data)
    128149{
  • src/FunctionApproximation/TrainingData.hpp

    r2ba2ed rdd8094  
    8181  }
    8282
     83  /** Returns the average of each component over all OutputVectors.
     84   *
     85   * This is useful for initializing the offset of the potential.
     86   *
     87   * @return average output vector
     88   */
     89  const FunctionModel::results_t getTrainingOutputAverage() const;
     90
    8391  /** Calculate the L2 error of a given \a model against the stored training data.
    8492   *
Note: See TracChangeset for help on using the changeset viewer.