Dear experts,
I trained a neural network using the TMVA interface to Keras, closely following the example given on:
https://root.cern.ch/doc/v608/ClassificationKeras_8py_source.html
The training and evaluation of the method work fine, but I am experiencing problems when trying to use the method in later analysis. The first issues arise when trying to set up an MVA reader as follows:
reader->BookMVA("kerasDNN_newVars method", "leptonMvaTraining/dataset/weights/TMVAClassification_kerasDNN_newVars.weights.xml");
which prompts the error:
: Booking “kerasDNN_newVars method” of type “PyKeras” from leptonMvaTraining/dataset/weights/TMVAClassification_kerasDNN_newVars.weights.xml.
: Unknown method in map: PyKeras
even though the xml file contains the name:
Does anyone know what is the reason for this? In order to avoid these issues I then turned to the standalone class, but this simply does not compile, giving the following errors
:
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:236:40: error: extra qualification on member ‘GetMvaValue’
inline double ReadkerasDNN_newVars::GetMvaValue( const std::vector& inputValues ) const
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:236:40: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:186:11: note: previous declaration is here
double GetMvaValue( const std::vector& inputValues ) const;
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:276:35: error: extra qualification on member ‘InitTransform_1’
inline void ReadkerasDNN_newVars::InitTransform_1()
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:276:35: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:204:9: note: previous declaration is here
void InitTransform_1();
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:789:35: error: extra qualification on member ‘Transform_1’
inline void ReadkerasDNN_newVars::Transform_1( std::vector& iv, int cls) const
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:789:35: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:205:9: note: previous declaration is here
void Transform_1( std::vector & iv, int sigOrBgd ) const;
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:847:35: error: extra qualification on member ‘InitTransform_2’
inline void ReadkerasDNN_newVars::InitTransform_2()
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:847:35: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:206:9: note: previous declaration is here
void InitTransform_2();
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157023:35: error: extra qualification on member ‘Transform_2’
inline void ReadkerasDNN_newVars::Transform_2( std::vector& iv, int clsIn) const
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157023:35: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:207:9: note: previous declaration is here
void Transform_2( std::vector & iv, int sigOrBgd ) const;
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157118:35: error: extra qualification on member ‘InitTransform’
inline void ReadkerasDNN_newVars::InitTransform()
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157118:35: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:208:9: note: previous declaration is here
void InitTransform();
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157125:35: error: extra qualification on member ‘Transform’
inline void ReadkerasDNN_newVars::Transform( std::vector& iv, int sigOrBgd ) const
~~~~~~~~~~~~~~~~~~~~~~^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157125:35: error: class member cannot be redeclared
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:209:9: note: previous declaration is here
void Transform( std::vector & iv, int sigOrBgd ) const;
^
<<< cling interactive line includer >>>:1:1: error: expected ‘}’
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:93:55: note: to match this ‘{’
class ReadkerasDNN_newVars : public IClassifierReader {
^
/home/willem/Work/TMVAClassification_kerasDNN_newVars.class.C:157129:2: error: expected ‘;’ after class
}
I tried to upload the xml and .C files, but apparently their size is too large for this website…
Does anyone know how to solve these issues? Thanks in advance for the help!
regards,
Willem