Parameter persisten in operator ProcessLog

Legacy User
Legacy User New Altair Community Member
edited November 5 in Community Q&A
Hi,

I've a question about the ProcessLog parameter "persistent". When I enable
it in sample "07_EvolutionaryParameterOptimization", the logfile
(specified by "filename" parameter) contains at the end just a single entry.
Otherwise, when the parameter is disabled, all intermediate computations
are correctly  logged.

What is the reason for that? I enabled the parameter since I wanted to check
from time to time how far my validation is. But the parameter seems to have
a different meaning.

And do I free some memory when persistent=1? I mean when the results do not
have to be kept but can be immediately written to the logfile, less memory
should be consumed. Is that right?

Regards,
Tim
Tagged:

Answers

  • land
    land New Altair Community Member
    Hi Tim,
    thanks for this hint. The persistent parameter should work as you expected. This bug has already been removed in the developer branch but has not been removed in the cvs stable version. I've done this.

    Greetings,
      Sebastian
  • Legacy User
    Legacy User New Altair Community Member
    Hi Sebastian,

    do I get the recent version with the fixed bug when I check out the recent CVS version with

    cvs -d:pserver: anonymous@yale.cvs.sourceforge.net:/cvsroot/yale login
    cvs -d:pserver: anonymous@yale.cvs.sourceforge.net:/cvsroot/yale co -P yale ?

    Regards,
    Tim

  • TobiasMalbrecht
    TobiasMalbrecht New Altair Community Member
    Hi Tim,

    yes, this should check out the HEAD revision of the module, i.e. the stable version (4.2) of RM. If you like, you can alternatively check out the branch Zaniah which contains our current development version.

    Regards,
    Tobias
  • Legacy User
    Legacy User New Altair Community Member
    Hi Tobias,

    I've now updated to Zaniah to check the fix in the persistent
    parameter. When I now run the sample
    07_Meta/07_EvolutionaryParameterOptimization.xml
    I get the error message:

    P Nov 4, 2008 5:10:11 PM: Initialising process setup
    P Nov 4, 2008 5:10:12 PM: [NOTE] No filename given for result file, using stdout for
    logging results!
    P Nov 4, 2008 5:10:12 PM: Checking properties...
    P Nov 4, 2008 5:10:12 PM: Properties are ok.
    P Nov 4, 2008 5:10:12 PM: Checking process setup...
    P Nov 4, 2008 5:10:12 PM: Inner operators are ok.
    P Nov 4, 2008 5:10:12 PM: Checking i/o classes...
    P Nov 4, 2008 5:10:12 PM: i/o classes are ok. Process output: ParameterSet,
    PerformanceVector.
    P Nov 4, 2008 5:10:12 PM: Process ok.
    P Nov 4, 2008 5:10:12 PM: Process initialised
    P Nov 4, 2008 5:10:12 PM: [NOTE] Process starts
    P Nov 4, 2008 5:10:12 PM: Process:
      Root[0] (Process)
      +- ExampleSource[0] (ExampleSource)
      +- ParameterOptimization[0] (EvolutionaryParameterOptimization)
         +- IteratingPerformanceAverage[0] (IteratingPerformanceAverage)
         |  +- Validation[0] (XValidation)
         |     +- LibSVMLearner[0] (LibSVMLearner)
         |     +- ApplierChain[0] (OperatorChain)
         |        +- Test[0] (ModelApplier)
         |        +- Performance[0] (Performance)
         +- Log[0] (ProcessLog)
    P Nov 4, 2008 5:10:13 PM: [Fatal] NullPointerException occured in 2nd application of
    Log (ProcessLog)
    P Nov 4, 2008 5:10:13 PM: [Fatal] Process failed: null
             Root[1] (Process)
             +- ExampleSource[1] (ExampleSource)
             +- ParameterOptimization[1] (EvolutionaryParameterOptimization)
                +- IteratingPerformanceAverage[1] (IteratingPerformanceAverage)
                |  +- Validation[0] (XValidation)
                |     +- LibSVMLearner[0] (LibSVMLearner)
                |     +- ApplierChain[0] (OperatorChain)
                |        +- Test[0] (ModelApplier)
                |        +- Performance[0] (Performance)
    here ==>    +- Log[1] (ProcessLog)
    java.lang.NullPointerException
       at
    com.rapidminer.operator.visualization.ProcessLogOperator.fetchAllValues(ProcessLogOperator.java:217)
       at
    com.rapidminer.operator.visualization.ProcessLogOperator.apply(ProcessLogOperator.java:184)
       at com.rapidminer.operator.Operator.apply(Operator.java:664)
       at
    com.rapidminer.operator.meta.ParameterOptimizationOperator.getPerformance(ParameterOptimizationOperator.java:65)
       at
    com.rapidminer.operator.meta.EvolutionaryParameterOptimizationOperator.setParametersAndEvaluate(EvolutionaryParameterOptimizationOperator.java:277)
       at
    com.rapidminer.operator.meta.ESParameterOptimization.evaluateIndividual(ESParameterOptimization.java:60)
       at
    com.rapidminer.tools.math.optimization.ec.es.ESOptimization.evaluate(ESOptimization.java:386)
       at
    com.rapidminer.tools.math.optimization.ec.es.ESOptimization.optimize(ESOptimization.java:328)
       at
    com.rapidminer.operator.meta.EvolutionaryParameterOptimizationOperator.apply(EvolutionaryParameterOptimizationOperator.java:201)
       at com.rapidminer.operator.Operator.apply(Operator.java:664)
       at com.rapidminer.operator.OperatorChain.apply(OperatorChain.java:377)
       at com.rapidminer.operator.Operator.apply(Operator.java:664)
       at com.rapidminer.Process.run(Process.java:612)
       at com.rapidminer.Process.run(Process.java:582)
       at com.rapidminer.Process.run(Process.java:572)
       at com.rapidminer.gui.ProcessThread.run(ProcessThread.java:61)
    This didn't happen in your stable RM version 4.2.

    Can you reproduce this?

    Thank you very much.

    Regards,
    Tim
  • IngoRM
    IngoRM New Altair Community Member
    Hi Tim,

    all issues with this process should now be settled in the latest updates.

    Cheers,
    Ingo