29useTMVACNN = opt[0]
if len(opt) > 0
else False
30useKerasCNN = opt[1]
if len(opt) > 1
else False
31useTMVADNN = opt[2]
if len(opt) > 2
else False
32useTMVABDT = opt[3]
if len(opt) > 3
else False
33usePyTorchCNN = opt[4]
if len(opt) > 4
else False
38 print(
"TMVA_CNN_Classificaton",
"Skip using Keras since tensorflow is not installed")
48 print(
"TMVA_CNN_Classificaton",
"Skip using PyTorch since torch is not installed")
64 fileOutName =
"images_data_16x16.root"
71 sX2 = sX1 + delta_sigma
72 sY2 = sY1 - delta_sigma
73 h1 =
ROOT.TH2D(
"h1",
"h1", nh, 0, 10, nw, 0, 10)
74 h2 =
ROOT.TH2D(
"h2",
"h2", nh, 0, 10, nw, 0, 10)
78 bkg =
ROOT.TTree(
"bkg_tree",
"background_tree")
80 f =
TFile(fileOutName,
"RECREATE")
95 ROOT.Info(
"TMVA_CNN_Classification",
"Filling ROOT tree \n")
98 print(
"Generating image event ...", i)
124 print(
"Signal and background tree with images data written to the file %s",
f.GetName())
134if (
not hasCPU
and not hasGPU) :
135 ROOT.Warning(
"TMVA_CNN_Classificaton",
"ROOT is not supporting tmva-cpu and tmva-gpu skip using TMVA-DNN and TMVA-CNN")
141 usePyTorchCNN =
False
147 "TMVA_CNN_Classificaton",
148 "TMVA is not build with GPU or CPU multi-thread support. Cannot use TMVA Deep Learning for CNN",
151writeOutputFile =
True
163 print(
"Running in serial mode since ROOT does not support MT")
170 outputFile =
TFile.Open(
"TMVA_CNN_ClassificationOutput.root",
"RECREATE")
195 "TMVA_CNN_Classification",
201 AnalysisType=
"Classification",
202 Transformations=
None,
225inputFileName =
"images_data_16x16.root"
249backgroundWeight = 1.0
275nTrainSig = 0.8 * nEventsSig
276nTrainBkg = 0.8 * nEventsBkg
283 nTrain_Signal=nTrainSig,
284 nTrain_Background=nTrainBkg,
287 NormMode=
"NumEvents",
289 CalcCorrelations=
False,
315 BoostType=
"AdaBoost",
318 BaggedSampleFraction=0.5,
319 SeparationType=
"GiniIndex",
331 "DENSE|100|RELU,BNORM,DENSE|100|RELU,BNORM,DENSE|100|RELU,BNORM,DENSE|100|RELU,DENSE|1|LINEAR"
338 "LearningRate=1e-3,Momentum=0.9,Repetitions=1,"
339 "ConvergenceSteps=5,BatchSize=100,TestRepetitions=1,"
340 "WeightDecay=1e-4,Regularization=None,"
341 "Optimizer=ADAM,DropConfig=0.0+0.0+0.0+0."
343 trainingString1 +=
",MaxEpochs=" + str(max_epochs)
346 dnnMethodName =
"TMVA_DNN_CPU"
352 dnnMethodName =
"TMVA_DNN_GPU"
360 ErrorStrategy=
"CROSSENTROPY",
362 WeightInitialization=
"XAVIER",
364 TrainingStrategy=trainingString1,
365 Architecture=dnnOptions
399 "LearningRate=1e-3,Momentum=0.9,Repetitions=1,"
400 "ConvergenceSteps=5,BatchSize=100,TestRepetitions=1,"
401 "WeightDecay=1e-4,Regularization=None,"
402 "Optimizer=ADAM,DropConfig=0.0+0.0+0.0+0.0"
404 trainingString1 +=
",MaxEpochs=" + str(max_epochs)
407 cnnMethodName =
"TMVA_CNN_CPU"
412 cnnMethodName =
"TMVA_CNN_GPU"
420 ErrorStrategy=
"CROSSENTROPY",
422 WeightInitialization=
"XAVIER",
423 InputLayout=
"1|16|16",
424 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",
425 TrainingStrategy=trainingString1,
426 Architecture=cnnOptions,
434 ROOT.Info(
"TMVA_CNN_Classification",
"Using Convolutional PyTorch Model")
436 pyTorchFileName +=
"/tmva/PyTorch_Generate_CNN_Model.py"
443 ROOT.Info(
"TMVA_CNN_Classification",
"Booking PyTorch CNN model")
451 FilenameModel=
"PyTorchModelCNN.pt",
452 FilenameTrainedModel=
"PyTorchTrainedModelCNN.pt",
453 NumEpochs=max_epochs,
455 UserCode=str(pyTorchFileName)
459 "TMVA_CNN_Classification",
460 "PyTorch is not installed or model building file is not existing - skip using PyTorch",
464 ROOT.Info(
"TMVA_CNN_Classification",
"Building convolutional keras model")
477 model.add(Reshape((16, 16, 1), input_shape=(256,)))
478 model.add(
Conv2D(10, kernel_size=(3, 3), kernel_initializer=
"TruncatedNormal", activation=
"relu", padding=
"same"))
479 model.add(
Conv2D(10, kernel_size=(3, 3), kernel_initializer=
"TruncatedNormal", activation=
"relu", padding=
"same"))
486 model.compile(loss=
"binary_crossentropy", optimizer=
Adam(learning_rate=0.001), weighted_metrics=[
"accuracy"])
494 ROOT.Info(
"TMVA_CNN_Classification",
"Booking convolutional keras model")
502 FilenameModel=
"model_cnn.h5",
503 FilenameTrainedModel=
"trained_model_cnn.h5",
504 NumEpochs=max_epochs,
506 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.