MachineIntelligenceCore:Toolchain
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
mic::application::EpisodicTrainAndTestApplication Class Referenceabstract

Parent class for all applications basing on episodes. Each episode consists of two phases: a training phase (first), and testing phase (second). Each phase will end when then an adequate method (performLearning/TrainingStep) will return false. By default all computations are made within a single thread. More...

#include <EpisodicTrainAndTestApplication.hpp>

Inheritance diagram for mic::application::EpisodicTrainAndTestApplication:
Collaboration diagram for mic::application::EpisodicTrainAndTestApplication:

Public Member Functions

 EpisodicTrainAndTestApplication (std::string node_name_)
 
virtual ~EpisodicTrainAndTestApplication ()
 
void run ()
 
- Public Member Functions inherited from mic::application::Application
 Application (std::string node_name_)
 
virtual ~Application ()
 
virtual void initialize (int argc, char *argv[])=0
 
virtual void displayStatus ()
 
- Public Member Functions inherited from mic::configuration::PropertyTree
 PropertyTree (std::string node_name_)
 
virtual ~PropertyTree ()
 
void registerProperty (PropertyInterface &prop)
 
std::string getNodeName () const
 
void loadPropertiesFromConfigNode (boost::property_tree::ptree const &pt_)
 
void printProperties ()
 
void printPropertiesWithValues ()
 
PropertyInterfacegetProperty (const std::string &name)
 
virtual void initializePropertyDependentVariables ()=0
 

Protected Member Functions

virtual bool performSingleStep ()
 
virtual bool performLearningStep ()=0
 
virtual bool performTestingStep ()=0
 
virtual void startNewEpisode ()=0
 
virtual void finishCurrentEpisode ()=0
 

Protected Attributes

unsigned long episode
 Episode counter. More...
 
unsigned long learning_iteration
 Learning iteration counter. More...
 
mic::configuration::Property
< unsigned long > 
number_of_episodes
 
- Protected Attributes inherited from mic::application::Application
unsigned long iteration
 Iteration counter. More...
 
mic::configuration::Property
< long > 
number_of_iterations
 

Detailed Description

Parent class for all applications basing on episodes. Each episode consists of two phases: a training phase (first), and testing phase (second). Each phase will end when then an adequate method (performLearning/TrainingStep) will return false. By default all computations are made within a single thread.

Author
tkornuta
Date
Feb 17, 2016

Definition at line 39 of file EpisodicTrainAndTestApplication.hpp.

Constructor & Destructor Documentation

mic::application::EpisodicTrainAndTestApplication::EpisodicTrainAndTestApplication ( std::string  node_name_)

Default constructor. Sets the application/node name and registers properties.

Parameters
node_name_Name of the application/node (in configuration file).

Definition at line 29 of file EpisodicTrainAndTestApplication.cpp.

References APP_STATE, number_of_episodes, and mic::configuration::PropertyTree::registerProperty().

Here is the call graph for this function:

virtual mic::application::EpisodicTrainAndTestApplication::~EpisodicTrainAndTestApplication ( )
inlinevirtual

Default destructor - empty.

Definition at line 50 of file EpisodicTrainAndTestApplication.hpp.

Member Function Documentation

virtual void mic::application::EpisodicTrainAndTestApplication::finishCurrentEpisode ( )
protectedpure virtual

Method called when given episode ends (goal: export collected statistics to file etc.) - abstract, to be overridden.

Referenced by performSingleStep().

virtual bool mic::application::EpisodicTrainAndTestApplication::performLearningStep ( )
protectedpure virtual

Perform learning step - abstract, to be overridden.

Returns
Returns false when test learning is completed.

Referenced by performSingleStep().

bool mic::application::EpisodicTrainAndTestApplication::performSingleStep ( void  )
protectedvirtual

Performs single step of computations. Depending on the state, calls learning or testing step - switches from learning to testing then learning return false - everything in the scope of a given episode.

Implements mic::application::Application.

Definition at line 75 of file EpisodicTrainAndTestApplication.cpp.

References APP_STATE, episode, finishCurrentEpisode(), number_of_episodes, performLearningStep(), performTestingStep(), and startNewEpisode().

Referenced by run().

Here is the call graph for this function:

virtual bool mic::application::EpisodicTrainAndTestApplication::performTestingStep ( )
protectedpure virtual

Perform testing step - abstract, to be overridden.

Returns
Returns false when test learning is completed.

Referenced by performSingleStep().

void mic::application::EpisodicTrainAndTestApplication::run ( )
virtual

Main application method - handles single step/pause/quite modes/commands. Calls performSingleStep().

Reimplemented from mic::application::Application.

Definition at line 42 of file EpisodicTrainAndTestApplication.cpp.

References APP_DATA_SYNCHRONIZATION_SCOPED_LOCK, APP_SLEEP, APP_STATE, mic::application::Application::iteration, performSingleStep(), and startNewEpisode().

Here is the call graph for this function:

virtual void mic::application::EpisodicTrainAndTestApplication::startNewEpisode ( )
protectedpure virtual

Method called at the beginning of new episode (goal: to reset the statistics etc.) - abstract, to be overridden.

Referenced by performSingleStep(), and run().

Member Data Documentation

unsigned long mic::application::EpisodicTrainAndTestApplication::episode
protected

Episode counter.

Definition at line 87 of file EpisodicTrainAndTestApplication.hpp.

Referenced by performSingleStep().

unsigned long mic::application::EpisodicTrainAndTestApplication::learning_iteration
protected

Learning iteration counter.

Definition at line 90 of file EpisodicTrainAndTestApplication.hpp.

mic::configuration::Property<unsigned long> mic::application::EpisodicTrainAndTestApplication::number_of_episodes
protected

Property: number of episodes, after which the application will end. 0 (default value) deactivates terminal condition (unlimited number of episodes).

Definition at line 95 of file EpisodicTrainAndTestApplication.hpp.

Referenced by EpisodicTrainAndTestApplication(), and performSingleStep().


The documentation for this class was generated from the following files: