Changeset b40690 for src


Ignore:
Timestamp:
Feb 9, 2016, 7:11:35 AM (9 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:
d72064
Parents:
b8f2ea
git-author:
Frederik Heber <heber@…> (02/08/16 17:44:31)
git-committer:
Frederik Heber <heber@…> (02/09/16 07:11:35)
Message:

Fit..PotentialAction now allow setting maximum number of optimization iteration.

  • also reduced default value to 100 instead of 1000 for speeding up tests.
Location:
src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/PotentialAction/FitCompoundPotentialAction.cpp

    rb8f2ea rb40690  
    9696      graph,
    9797      params.training_file.get(),
     98      params.max_iterations.get(),
    9899      params.threshold.get(),
    99100      params.best_of_howmany.get());
  • src/Actions/PotentialAction/FitCompoundPotentialAction.def

    rb8f2ea rb40690  
    2323// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    2424// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
    25 #define paramtypes (boost::filesystem::path)(std::vector<const element *>)(unsigned int)(double)
    26 #define paramtokens ("training-file")("fragment-charges")("take-best-of")("set-threshold")
    27 #define paramdescriptions ("optional file to write training data to")("charges specifying the fragment")("take the best among this many approximations")("Require L2 error to be smaller than threshold, overrides number of attempts")
    28 #define paramdefaults (PARAM_DEFAULT(""))(NOPARAM_DEFAULT)(PARAM_DEFAULT(3))(PARAM_DEFAULT(1.))
    29 #define paramreferences (training_file)(fragment)(best_of_howmany)(threshold)
     25#define paramtypes (boost::filesystem::path)(std::vector<const element *>)(unsigned int)(double)(unsigned int)
     26#define paramtokens ("training-file")("fragment-charges")("take-best-of")("set-threshold")("set-max-iterations")
     27#define paramdescriptions ("optional file to write training data to")("charges specifying the fragment")("take the best among this many approximations")("Require L2 error to be smaller than threshold, overrides number of attempts")("sets the maximum number of iterations spent on the optimization of parameters")
     28#define paramdefaults (PARAM_DEFAULT(""))(NOPARAM_DEFAULT)(PARAM_DEFAULT(3))(PARAM_DEFAULT(1.))(PARAM_DEFAULT(100))
     29#define paramreferences (training_file)(fragment)(best_of_howmany)(threshold)(max_iterations)
    3030#define paramvalids \
    3131(DummyValidator<boost::filesystem::path>()) \
    3232(STLVectorValidator< std::vector<const element *> >(1,99, ElementValidator())) \
    3333(PositiveValidator<unsigned int>()) \
    34 (PositiveValidator<double>())
     34(PositiveValidator<double>()) \
     35(PositiveValidator<unsigned int>())
    3536
    3637#undef statetypes
  • src/Actions/PotentialAction/FitPotentialAction.cpp

    rb8f2ea rb40690  
    147147      graph,
    148148      params.training_file.get(),
     149      params.max_iterations.get(),
    149150      params.threshold.get(),
    150151      params.best_of_howmany.get());
  • src/Actions/PotentialAction/FitPotentialAction.def

    rb8f2ea rb40690  
    2323// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    2424// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
    25 #define paramtypes (boost::filesystem::path)(std::string)(std::vector<const element *>)(std::vector<const element *>)(unsigned int)(double)
    26 #define paramtokens ("training-file")("potential-type")("potential-charges")("fragment-charges")("take-best-of")("set-threshold")
    27 #define paramdescriptions ("optional file to write training data to")("potential type to fit")("charges specifying the potential")("charges specifying the fragment")("take the best among this many approximations")("Require L2 error to be smaller than threshold, overrides number of attempts")
    28 #define paramdefaults (PARAM_DEFAULT(""))(NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT(3))(PARAM_DEFAULT(1.))
    29 #define paramreferences (training_file)(potentialtype)(charges)(fragment)(best_of_howmany)(threshold)
     25#define paramtypes (boost::filesystem::path)(std::string)(std::vector<const element *>)(std::vector<const element *>)(unsigned int)(double)(unsigned int)
     26#define paramtokens ("training-file")("potential-type")("potential-charges")("fragment-charges")("take-best-of")("set-threshold")("set-max-iterations")
     27#define paramdescriptions ("optional file to write training data to")("potential type to fit")("charges specifying the potential")("charges specifying the fragment")("take the best among this many approximations")("Require L2 error to be smaller than threshold, overrides number of attempts")("sets the maximum number of iterations spent on the optimization of parameters")
     28#define paramdefaults (PARAM_DEFAULT(""))(NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT(3))(PARAM_DEFAULT(1.))(PARAM_DEFAULT(100))
     29#define paramreferences (training_file)(potentialtype)(charges)(fragment)(best_of_howmany)(threshold)(max_iterations)
    3030#define paramvalids \
    3131(DummyValidator<boost::filesystem::path>()) \
     
    3434(STLVectorValidator< std::vector<const element *> >(1,99, ElementValidator())) \
    3535(PositiveValidator<unsigned int>()) \
    36 (PositiveValidator<double>())
     36(PositiveValidator<double>()) \
     37(PositiveValidator<unsigned int>())
    3738
    3839#undef statetypes
  • src/FunctionApproximation/FunctionApproximation.cpp

    rb8f2ea rb40690  
    5757    const TrainingData &_data,
    5858    FunctionModel &_model,
    59     const double _precision) :
     59    const double _precision,
     60    const unsigned int _maxiterations) :
    6061    input_dimension(_data.getTrainingInputs().size()),
    6162    output_dimension(_data.getTrainingOutputs().size()),
    6263    precision(_precision),
     64    maxiterations(_maxiterations),
    6365    input_data(_data.getTrainingInputs()),
    6466    output_data(_data.getTrainingOutputs()),
     
    196198        ret=dlevmar_bc_dif(
    197199            &FunctionApproximation::LevMarCallback,
    198             p, x, m, n, lb, ub, NULL, 1000, opts, info, work, covar, this); // no Jacobian, caller allocates work memory, covariance estimated
     200            p, x, m, n, lb, ub, NULL, 100, opts, info, work, covar, this); // no Jacobian, caller allocates work memory, covariance estimated
    199201      } else if (mode == ParameterDerivative) {
    200202        ret=dlevmar_bc_der(
    201203            &FunctionApproximation::LevMarCallback,
    202204            &FunctionApproximation::LevMarDerivativeCallback,
    203             p, x, m, n, lb, ub, NULL, 1000, opts, info, work, covar, this); // no Jacobian, caller allocates work memory, covariance estimated
     205            p, x, m, n, lb, ub, NULL, 100, opts, info, work, covar, this); // no Jacobian, caller allocates work memory, covariance estimated
    204206      } else {
    205207        ASSERT(0, "FunctionApproximation::operator() - Unknown jacobian method chosen.");
  • src/FunctionApproximation/FunctionApproximation.hpp

    rb8f2ea rb40690  
    8181   * \param _model FunctionModel to use in approximation
    8282   * \param _precision desired precision of fit
     83   * \param _maxiterations maximum number of iterations for LevMar's optimization
    8384   */
    8485  FunctionApproximation(
    8586      const TrainingData &_data,
    8687      FunctionModel &_model,
    87       const double _precision);
     88      const double _precision,
     89      const unsigned int _maxiterations);
    8890
    8991  /** Constructor of the class FunctionApproximation.
     
    9799      const size_t &_output_dimension,
    98100      FunctionModel &_model,
    99       const double _precision) :
     101      const double _precision,
     102      const unsigned int _maxiterations) :
    100103    input_dimension(_input_dimension),
    101104    output_dimension(_output_dimension),
    102     model(_model),
    103     precision(_precision)
     105    precision(_precision),
     106    maxiterations(_maxiterations),
     107    model(_model)
    104108  {}
    105109  /** Destructor for class FunctionApproximation.
     
    197201  //!> desired precision given to LevMar
    198202  const double precision;
     203  //!> maximum number of iterations for LevMar
     204  const unsigned int maxiterations;
    199205
    200206  //!> current input set of training data
  • src/Potentials/PotentialTrainer.cpp

    rb8f2ea rb40690  
    7171    const HomologyGraph &_graph,
    7272    const boost::filesystem::path &_trainingfile,
     73    const unsigned int _maxiterations,
    7374    const double _threshold,
    7475    const unsigned int _best_of_howmany) const
     
    120121      ELOG(2, "threshold parameter always overrules max_runs, both are specified.");
    121122    // now perform the function approximation by optimizing the model function
    122     FunctionApproximation approximator(data, *model, _threshold);
     123    FunctionApproximation approximator(data, *model, _threshold, _maxiterations);
    123124    if (model->isBoxConstraint() && approximator.checkParameterDerivatives()) {
    124125      double l2error = std::numeric_limits<double>::max();
  • src/Potentials/PotentialTrainer.hpp

    rb8f2ea rb40690  
    3636        const HomologyGraph &_graph,
    3737        const boost::filesystem::path &_trainingfile,
     38        const unsigned int _maxiterations,
    3839        const double _threshold,
    3940        const unsigned int _best_of_howmany) const;
Note: See TracChangeset for help on using the changeset viewer.