31useTMVACNN = opt[0]
if len(opt) > 0
else False
32useKerasCNN = opt[1]
if len(opt) > 1
else False
33useTMVADNN = opt[2]
if len(opt) > 2
else False
34useTMVABDT = opt[3]
if len(opt) > 3
else False
35usePyTorchCNN = opt[4]
if len(opt) > 4
else False
45 fileOutName =
"images_data_16x16.root"
52 sX2 = sX1 + delta_sigma
53 sY2 = sY1 - delta_sigma
54 h1 =
ROOT.TH2D(
"h1",
"h1", nh, 0, 10, nw, 0, 10)
55 h2 =
ROOT.TH2D(
"h2",
"h2", nh, 0, 10, nw, 0, 10)
59 bkg =
ROOT.TTree(
"bkg_tree",
"background_tree")
61 f =
TFile(fileOutName,
"RECREATE")
76 ROOT.Info(
"TMVA_CNN_Classification",
"Filling ROOT tree \n")
79 print(
"Generating image event ...", i)
105 print(
"Signal and background tree with images data written to the file %s",
f.GetName())
115if (
not hasCPU
and not hasGPU) :
116 ROOT.Warning(
"TMVA_CNN_Classificaton",
"ROOT is not supporting tmva-cpu and tmva-gpu skip using TMVA-DNN and TMVA-CNN")
122 usePyTorchCNN =
False
128 "TMVA_CNN_Classificaton",
129 "TMVA is not build with GPU or CPU multi-thread support. Cannot use TMVA Deep Learning for CNN",
132writeOutputFile =
True
144 print(
"Running in serial mode since ROOT does not support MT")
151 outputFile =
TFile.Open(
"TMVA_CNN_ClassificationOutput.root",
"RECREATE")
176 "TMVA_CNN_Classification",
182 AnalysisType=
"Classification",
183 Transformations=
None,
206inputFileName =
"images_data_16x16.root"
230backgroundWeight = 1.0
256nTrainSig = 0.8 * nEventsSig
257nTrainBkg = 0.8 * nEventsBkg
264 nTrain_Signal=nTrainSig,
265 nTrain_Background=nTrainBkg,
268 NormMode=
"NumEvents",
270 CalcCorrelations=
False,
296 BoostType=
"AdaBoost",
299 BaggedSampleFraction=0.5,
300 SeparationType=
"GiniIndex",
312 "DENSE|100|RELU,BNORM,DENSE|100|RELU,BNORM,DENSE|100|RELU,BNORM,DENSE|100|RELU,DENSE|1|LINEAR"
319 "LearningRate=1e-3,Momentum=0.9,Repetitions=1,"
320 "ConvergenceSteps=5,BatchSize=100,TestRepetitions=1,"
321 "WeightDecay=1e-4,Regularization=None,"
322 "Optimizer=ADAM,DropConfig=0.0+0.0+0.0+0."
324 trainingString1 +=
",MaxEpochs=" + str(max_epochs)
327 dnnMethodName =
"TMVA_DNN_CPU"
333 dnnMethodName =
"TMVA_DNN_GPU"
341 ErrorStrategy=
"CROSSENTROPY",
343 WeightInitialization=
"XAVIER",
345 TrainingStrategy=trainingString1,
346 Architecture=dnnOptions
380 "LearningRate=1e-3,Momentum=0.9,Repetitions=1,"
381 "ConvergenceSteps=5,BatchSize=100,TestRepetitions=1,"
382 "WeightDecay=1e-4,Regularization=None,"
383 "Optimizer=ADAM,DropConfig=0.0+0.0+0.0+0.0"
385 trainingString1 +=
",MaxEpochs=" + str(max_epochs)
388 cnnMethodName =
"TMVA_CNN_CPU"
393 cnnMethodName =
"TMVA_CNN_GPU"
401 ErrorStrategy=
"CROSSENTROPY",
403 WeightInitialization=
"XAVIER",
404 InputLayout=
"1|16|16",
405 Layout=
"CONV|10|3|3|1|1|1|1|RELU,BNORM,CONV|10|3|3|1|1|1|1|RELU,MAXPOOL|2|2|1|1,RESHAPE|FLAT,DENSE|100|RELU,DENSE|1|LINEAR",
406 TrainingStrategy=trainingString1,
407 Architecture=cnnOptions,
415 ROOT.Info(
"TMVA_CNN_Classification",
"Using Convolutional PyTorch Model")
417 pyTorchFileName +=
"/machine_learning/PyTorch_Generate_CNN_Model.py"
424 ROOT.Info(
"TMVA_CNN_Classification",
"Booking PyTorch CNN model")
432 FilenameModel=
"PyTorchModelCNN.pt",
433 FilenameTrainedModel=
"PyTorchTrainedModelCNN.pt",
434 NumEpochs=max_epochs,
436 UserCode=str(pyTorchFileName)
440 "TMVA_CNN_Classification",
441 "PyTorch is not installed or model building file is not existing - skip using PyTorch",
445 ROOT.Info(
"TMVA_CNN_Classification",
"Building convolutional keras model")
458 model.add(Reshape((16, 16, 1), input_shape=(256,)))
459 model.add(
Conv2D(10, kernel_size=(3, 3), kernel_initializer=
"TruncatedNormal", activation=
"relu", padding=
"same"))
460 model.add(
Conv2D(10, kernel_size=(3, 3), kernel_initializer=
"TruncatedNormal", activation=
"relu", padding=
"same"))
467 model.compile(loss=
"binary_crossentropy", optimizer=
Adam(learning_rate=0.001), weighted_metrics=[
"accuracy"])
475 ROOT.Info(
"TMVA_CNN_Classification",
"Booking convolutional keras model")
483 FilenameModel=
"model_cnn.h5",
484 FilenameTrainedModel=
"trained_model_cnn.h5",
485 NumEpochs=max_epochs,
487 GpuOptions=
"allow_growth=True",
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
This is the main MVA steering class.