Hello ROOTers,
I’m attempting to use cross-validation to train a Deep Neural Network but I’m running into a couple of problems. I’d be grateful for any insight.
Initially, I was attempting to use this piece of code…
TMVA::CrossValidation crossVal(dataLoader);
crossVal.BookMethod(TMVA::Types::kDNN, “DNN”, “Architecture=GPU:Layout=RELU|30,SIGMOID|20,LINEAR”);
crossVal.Evaluate();
TMVA::CrossValidationResult results = crossVal.GetResults();
results.Print();
…;however, I then get this error…
root [0] Processing DNN.C…
/home/jgrundy/DNN/./DNN.C:80:30: error: no viable conversion from ‘const std::vector’ to 'TMVA::CrossValidationResult’
TMVA::CrossValidationResult results = crossVal.GetResults();
This is surprising since I’m only booking a single method. However, accepting this to be true and treating GetResults like it produces a vector, I still get errors…
TMVA::CrossValidation crossVal(dataLoader);
crossVal.BookMethod(TMVA::Types::kDNN, "DNN”, “Architecture=GPU:Layout=RELU|30,SIGMOID|20,LINEAR”);
crossVal.Evaluate();
TMVA::CrossValidationResult results = crossVal.GetResults()[0];
results.Print();
… produces the error…
root [0] .x DNN.C
IncrementalExecutor::executeFunction: symbol ‘ZN4TMVA21CrossValidationResultC1ERKS0’ unresolved while linking function ‘_GLOBAL__sub_I_cling_module_8’!
You are probably missing the definition of TMVA::CrossValidationResult::CrossValidationResult(TMVA::CrossValidationResult const&)
Maybe you need to load the corresponding shared library?
I’m pretty sure I have all the libraries loaded and ready to use so I’m unsure what the issue here is. I’m new to using TMVA so apologies if the solution is obvious.
Cheers,
James
ps. I’m using ROOT 6.12/04.