PLearn 0.1
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Static Protected Member Functions | Private Types | Private Member Functions
PLearn::PrecomputedProcessedLearner Class Reference

Identity Learner with a cached 'processDataSet' method. More...

#include <PrecomputedProcessedLearner.h>

Inheritance diagram for PLearn::PrecomputedProcessedLearner:
Inheritance graph
[legend]
Collaboration diagram for PLearn::PrecomputedProcessedLearner:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 PrecomputedProcessedLearner ()
 Default constructor.
virtual int outputsize () const
 Return the inputsize from the last setTrainingSet.
virtual void forget ()
 No-op in this learner.
virtual void train ()
 No-op in this learner.
virtual void computeOutput (const Vec &input, Vec &output) const
 Computes the output from the input: identity function.
virtual void computeCostsFromOutputs (const Vec &input, const Vec &output, const Vec &target, Vec &costs) const
 No-op in this learner.
virtual TVec< std::string > getTestCostNames () const
 This learner does not have any test costs.
virtual TVec< std::string > getTrainCostNames () const
 This learner does not have any train costs.
virtual VMat processDataSet (VMat dataset) const
 Process a full dataset (possibly containing input,target,weight,extra parts).
virtual string classname () const
virtual OptionListgetOptionList () const
virtual OptionMapgetOptionMap () const
virtual RemoteMethodMapgetRemoteMethodMap () const
virtual
PrecomputedProcessedLearner
deepCopy (CopiesMap &copies) const
virtual void build ()
 Finish building the object; just call inherited::build followed by build_()
virtual void makeDeepCopyFromShallowCopy (CopiesMap &copies)
 Transforms a shallow copy into a deep copy.

Static Public Member Functions

static string _classname_ ()
static OptionList_getOptionList_ ()
static RemoteMethodMap_getRemoteMethodMap_ ()
static Object_new_instance_for_typemap_ ()
static bool _isa_ (const Object *o)
static void _static_initialize_ ()
static const PPathdeclaringFile ()

Public Attributes

string m_precomp_type
 Buffering type for precomputed train operations.

Static Public Attributes

static StaticInitializer _static_initializer_

Static Protected Member Functions

static void declareOptions (OptionList &ol)
 Declares the class options.

Private Types

typedef PLearner inherited

Private Member Functions

void build_ ()
 This does the actual building.

Detailed Description

Identity Learner with a cached 'processDataSet' method.

This learner is functionally the identity learner: it does not learn anything, and its computeOutput() produces the same thing as its input. HOWEVER, it implements a special function: the results of calls to processDataSet produce a CACHED VMatrix of the results, thereby making further accesses much faster.

The intended use of this learner is within a chain managed by a ChainedLearner, wherein one has the pattern

Definition at line 63 of file PrecomputedProcessedLearner.h.


Member Typedef Documentation

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.h.


Constructor & Destructor Documentation

PLearn::PrecomputedProcessedLearner::PrecomputedProcessedLearner ( )

Default constructor.

Definition at line 68 of file PrecomputedProcessedLearner.cc.

    : m_precomp_type("memory")
{ }

Member Function Documentation

string PLearn::PrecomputedProcessedLearner::_classname_ ( ) [static]

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

OptionList & PLearn::PrecomputedProcessedLearner::_getOptionList_ ( ) [static]

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

RemoteMethodMap & PLearn::PrecomputedProcessedLearner::_getRemoteMethodMap_ ( ) [static]

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

bool PLearn::PrecomputedProcessedLearner::_isa_ ( const Object o) [static]

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

Object * PLearn::PrecomputedProcessedLearner::_new_instance_for_typemap_ ( ) [static]

Reimplemented from PLearn::Object.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

StaticInitializer PrecomputedProcessedLearner::_static_initializer_ & PLearn::PrecomputedProcessedLearner::_static_initialize_ ( ) [static]

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

void PLearn::PrecomputedProcessedLearner::build ( ) [virtual]

Finish building the object; just call inherited::build followed by build_()

Reimplemented from PLearn::PLearner.

Definition at line 100 of file PrecomputedProcessedLearner.cc.

References PLearn::PLearner::build(), and build_().

Here is the call graph for this function:

void PLearn::PrecomputedProcessedLearner::build_ ( ) [private]

This does the actual building.

Reimplemented from PLearn::PLearner.

Definition at line 88 of file PrecomputedProcessedLearner.cc.

References m_precomp_type, and PLERROR.

Referenced by build().

{
    if (m_precomp_type != "memory" &&
        m_precomp_type != "dmat"   &&
        m_precomp_type != "pmat" )
        PLERROR("%s: unknown value for option 'precomp_type' (= '%s');\n"
                "must be one of: 'memory', 'dmat', 'pmat'", __FUNCTION__,
                m_precomp_type.c_str());
}

Here is the caller graph for this function:

string PLearn::PrecomputedProcessedLearner::classname ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

void PLearn::PrecomputedProcessedLearner::computeCostsFromOutputs ( const Vec input,
const Vec output,
const Vec target,
Vec costs 
) const [virtual]

No-op in this learner.

Implements PLearn::PLearner.

Definition at line 135 of file PrecomputedProcessedLearner.cc.

{
    // No-op
}
void PLearn::PrecomputedProcessedLearner::computeOutput ( const Vec input,
Vec output 
) const [virtual]

Computes the output from the input: identity function.

Reimplemented from PLearn::PLearner.

Definition at line 129 of file PrecomputedProcessedLearner.cc.

{
    output << input;
}
void PLearn::PrecomputedProcessedLearner::declareOptions ( OptionList ol) [static, protected]

Declares the class options.

Reimplemented from PLearn::PLearner.

Definition at line 72 of file PrecomputedProcessedLearner.cc.

References PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::PLearner::declareOptions(), and m_precomp_type.

{
    declareOption(
        ol, "precomp_type", &PrecomputedProcessedLearner::m_precomp_type,
        OptionBase::buildoption,
        "Buffering type for precomputed train operations.  Can be 'memory',\n"
        "'dmat', or 'pmat'.  In the first case, a MemoryVMatrix is returned from\n"
        "calls to ProcessDataSet.  In the last two cases, a PrecomputedVMatrix\n"
        "is returned, with the appropriate precompute type set.  The metadatadir\n"
        "of the vmat is set to be the learner's expdir/ followed by\n"
        "'precomputed_processed.metadata'.\n");
    
    // Now call the parent class' declareOptions
    inherited::declareOptions(ol);
}

Here is the call graph for this function:

static const PPath& PLearn::PrecomputedProcessedLearner::declaringFile ( ) [inline, static]

Reimplemented from PLearn::PLearner.

Definition at line 123 of file PrecomputedProcessedLearner.h.

:
PrecomputedProcessedLearner * PLearn::PrecomputedProcessedLearner::deepCopy ( CopiesMap copies) const [virtual]

Reimplemented from PLearn::PLearner.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

void PLearn::PrecomputedProcessedLearner::forget ( ) [virtual]

No-op in this learner.

Reimplemented from PLearn::PLearner.

Definition at line 118 of file PrecomputedProcessedLearner.cc.

References PLearn::PLearner::forget().

Here is the call graph for this function:

OptionList & PLearn::PrecomputedProcessedLearner::getOptionList ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

OptionMap & PLearn::PrecomputedProcessedLearner::getOptionMap ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

RemoteMethodMap & PLearn::PrecomputedProcessedLearner::getRemoteMethodMap ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 65 of file PrecomputedProcessedLearner.cc.

TVec< string > PLearn::PrecomputedProcessedLearner::getTestCostNames ( ) const [virtual]

This learner does not have any test costs.

Implements PLearn::PLearner.

Definition at line 142 of file PrecomputedProcessedLearner.cc.

{
    return TVec<string>();
}
TVec< string > PLearn::PrecomputedProcessedLearner::getTrainCostNames ( ) const [virtual]

This learner does not have any train costs.

Implements PLearn::PLearner.

Definition at line 148 of file PrecomputedProcessedLearner.cc.

{
    return TVec<string>();
}
void PLearn::PrecomputedProcessedLearner::makeDeepCopyFromShallowCopy ( CopiesMap copies) [virtual]

Transforms a shallow copy into a deep copy.

Reimplemented from PLearn::PLearner.

Definition at line 107 of file PrecomputedProcessedLearner.cc.

References PLearn::PLearner::makeDeepCopyFromShallowCopy().

Here is the call graph for this function:

int PLearn::PrecomputedProcessedLearner::outputsize ( ) const [virtual]

Return the inputsize from the last setTrainingSet.

Implements PLearn::PLearner.

Definition at line 113 of file PrecomputedProcessedLearner.cc.

References PLearn::PLearner::inputsize_.

{
    return inputsize_;
}
VMat PLearn::PrecomputedProcessedLearner::processDataSet ( VMat  dataset) const [virtual]

Process a full dataset (possibly containing input,target,weight,extra parts).

Returns the PRECOMPUTED processed view of that dataset; this is done by passing the result from the inherited processDataSet through the appropriate VMatrix (depending on precomp_type).

Reimplemented from PLearn::PLearner.

Definition at line 154 of file PrecomputedProcessedLearner.cc.

References PLearn::endl(), PLearn::PLearner::expdir, PLearn::PLearner::getExperimentDirectory(), PLearn::getProcessDataMemory(), PLearn::VMat::length(), m_precomp_type, PLERROR, PLearn::PLearner::processDataSet(), PLearn::VMat::toMat(), and PLearn::VMat::width().

{
    VMat raw_processed = inherited::processDataSet(dataset);

    DBG_MODULE_LOG << "BEFORE PRECOMPUTE. Process memory: "
                   << getProcessDataMemory() << endl;

    MODULE_LOG << "Precomputing "
               << raw_processed.length() << 'x' << raw_processed.width()
               << " to " << m_precomp_type
               << endl;
    
    if (m_precomp_type == "memory") {
        Mat precomp = raw_processed.toMat();

        DBG_MODULE_LOG << "AFTER PRECOMPUTE. Process memory: "
                       << getProcessDataMemory() << endl;

        return VMat(precomp);
    }
    else {
        PPath expdir = getExperimentDirectory();
        if (expdir.empty())
            PLERROR("%s: an experiment directory must be set in order to use precomp_type '%s'",
                    __FUNCTION__, m_precomp_type.c_str());
        
        PP<PrecomputedVMatrix> precomp = new PrecomputedVMatrix;
        precomp->source = raw_processed;
        precomp->precomp_type = m_precomp_type;
        precomp->build();
        precomp->setMetaDataDir(expdir / "precomputed_processed.metadata");

        DBG_MODULE_LOG << "AFTER PRECOMPUTE. Process memory: "
                       << getProcessDataMemory() << endl;

        return (VMatrix*)precomp;
    }
}

Here is the call graph for this function:

void PLearn::PrecomputedProcessedLearner::train ( ) [virtual]

No-op in this learner.

Implements PLearn::PLearner.

Definition at line 123 of file PrecomputedProcessedLearner.cc.

{
    // No-op
}

Member Data Documentation

Reimplemented from PLearn::PLearner.

Definition at line 123 of file PrecomputedProcessedLearner.h.

Buffering type for precomputed train operations.

Can be 'memory', 'dmat', or 'pmat'. In the first case, a MemoryVMatrix is returned from calls to ProcessDataSet. In the last two cases, a PrecomputedVMatrix is returned, with the appropriate precompute type set. The metadatadir of the vmat is set to be the learner's expdir/ followed by 'precomputed_processed.metadata'.

Definition at line 78 of file PrecomputedProcessedLearner.h.

Referenced by build_(), declareOptions(), and processDataSet().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines