18from ROOT
import TMVA, TFile, TString
19from array
import array
20from subprocess
import call
21from os.path
import isfile
32data =
TFile.Open(
"http://root.cern.ch/files/tmva_class_example.root",
"CACHEREAD")
34 raise FileNotFoundError(
"Input file cannot be downloaded - exit")
36signal = data.Get(
'TreeS')
37background = data.Get(
'TreeB')
40for branch
in signal.GetListOfBranches():
41 branchName = branch.GetName()
42 branches[branchName] = array(
'f', [-999])
43 reader.AddVariable(branchName, branches[branchName])
44 signal.SetBranchAddress(branchName, branches[branchName])
45 background.SetBranchAddress(branchName, branches[branchName])
49def predict(model, test_X, batch_size=32):
53 test_dataset = torch.utils.data.TensorDataset(torch.Tensor(test_X))
54 test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size, shuffle=
False)
58 for i, data
in enumerate(test_loader):
61 predictions.append(outputs)
62 preds = torch.cat(predictions)
67load_model_custom_objects = {
"optimizer":
None,
"criterion":
None,
"train_func":
None,
"predict_func": predict}
71reader.BookMVA(
'PyTorch',
TString(
'dataset/weights/TMVAClassification_PyTorch.weights.xml'))
75print(
'Some signal example classifications:')
78 print(reader.EvaluateMVA(
'PyTorch'))
81print(
'Some background example classifications:')
83 background.GetEntry(i)
84 print(reader.EvaluateMVA(
'PyTorch'))
static Bool_t SetCacheFileDir(ROOT::Internal::TStringView cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
static void PyInitialize()
Initialize Python interpreter.
The Reader class serves to use the MVAs in a specific analysis context.