13 from keras.models import Sequential\n\ 14 from keras.layers.core import Dense, Activation\n\ 15 from keras import initializations\n\ 16 from keras.optimizers import SGD\n\ 18 model = Sequential()\n\ 19 model.add(Dense(64, init=\"normal\", activation=\"tanh\", input_dim=2))\n\ 20 model.add(Dense(1, init=\"normal\", activation=\"linear\"))\n\ 21 model.compile(loss=\"mean_squared_error\", optimizer=SGD(lr=0.01))\n\ 22 model.save(\"kerasModelRegression.h5\")\n";
26 std::cout <<
"Get test data..." << std::endl;
27 TString fname =
"./tmva_reg_example.root";
29 gSystem->
Exec(
"curl -O http://root.cern.ch/files/tmva_reg_example.root");
33 std::cout <<
"Generate keras model..." << std::endl;
35 ret =
gSystem->
Exec(
"echo '"+pythonSrc+
"' > generateKerasModelRegression.py");
37 std::cout <<
"[ERROR] Failed to write python code to file" << std::endl;
40 ret =
gSystem->
Exec(
"python generateKerasModelRegression.py");
42 std::cout <<
"[ERROR] Failed to generate model using python" << std::endl;
47 std::cout <<
"Setup TMVA..." << std::endl;
49 TFile* outputFile =
TFile::Open(
"ResultsTestPyKerasRegression.root",
"RECREATE");
51 "!V:Silent:Color:!DrawProgressBar:AnalysisType=Regression");
64 "SplitMode=Random:NormMode=NumEvents:!V");
68 "!H:!V:VarTransform=D,G:FilenameModel=kerasModelRegression.h5:FilenameTrainedModel=trainedKerasModelRegression.h5:NumEpochs=10:BatchSize=32:SaveBestOnly=false:Verbose=0");
69 std::cout <<
"Train model..." << std::endl;
79 std::cout <<
"Run reader and estimate target of " << numEvents <<
" events..." << std::endl;
84 reader->
BookMVA(
"PyKeras",
"datasetTestPyKerasRegression/weights/testPyKerasRegression_PyKeras.weights.xml");
92 for(
UInt_t i=0; i<numEvents; i++){
96 meanMvaError = meanMvaError/float(numEvents);
99 std::cout <<
"Mean squared error: " << meanMvaError << std::endl;
100 if(meanMvaError > 30.0){
101 std::cout <<
"[ERROR] Mean squared error is " << meanMvaError <<
" (>30.0)" << std::endl;
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
MethodBase * BookMethod(DataLoader *loader, TString theMethodName, TString methodTitle, TString theOption="")
void AddVariable(const TString &expression, Float_t *)
Add a float variable or expression to the reader.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
virtual TObject * Get(const char *namecycle)
Return pointer to object identified by namecycle.
int testPyKerasRegression()
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
void TrainAllMethods()
iterates through all booked methods and calls training
void AddVariable(const TString &expression, const TString &title, const TString &unit, char type='F', Double_t min=0, Double_t max=0)
static void PyInitialize()
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0)
Create / open a file.
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=0)
Change branch address, dealing with clone trees properly.
double pow(double, double)
IMethod * BookMVA(const TString &methodTag, const TString &weightfile)
read method name from weight file
R__EXTERN TSystem * gSystem
void AddRegressionTree(TTree *tree, Double_t weight=1.0, Types::ETreeType treetype=Types::kMaxTreeType)
virtual Int_t Exec(const char *shellcmd)
Execute a command.
void PrepareTrainingAndTestTree(const TCut &cut, const TString &splitOpt)
void AddTarget(const TString &expression, const TString &title="", const TString &unit="", Double_t min=0, Double_t max=0)
Double_t EvaluateMVA(const std::vector< Float_t > &, const TString &methodTag, Double_t aux=0)
Evaluate a std::vector<float> of input data for a given method The parameter aux is obligatory for th...
A TTree object has a header with a name and a title.