36useTMVACNN = opt[0]
if len(opt) > 0
else False
37useKerasCNN = opt[1]
if len(opt) > 1
else useKerasCNN
38useTMVADNN = opt[2]
if len(opt) > 2
else False
39useTMVABDT = opt[3]
if len(opt) > 3
else False
40usePyTorchCNN = opt[4]
if len(opt) > 4
else False
46 ROOT.Warning(
"TMVA_CNN_Classification",
"Skip using Keras since tensorflow cannot be imported")
55 print(
"TMVA_CNN_Classificaton",
"Skip using PyTorch since torch is not installed")
60 ROOT.Warning(
"TMVA_CNN_Classification",
"Skip using PyTorch since it cannot be imported")
75 fileOutName =
"images_data_16x16.root"
82 sX2 = sX1 + delta_sigma
83 sY2 = sY1 - delta_sigma
84 h1 =
ROOT.TH2D(
"h1",
"h1", nh, 0, 10, nw, 0, 10)
85 h2 =
ROOT.TH2D(
"h2",
"h2", nh, 0, 10, nw, 0, 10)
89 bkg =
ROOT.TTree(
"bkg_tree",
"background_tree")
91 f =
TFile(fileOutName,
"RECREATE")
106 ROOT.Info(
"TMVA_CNN_Classification",
"Filling ROOT tree \n")
109 print(
"Generating image event ...", i)
135 print(
"Signal and background tree with images data written to the file %s",
f.GetName())
145if (
not hasCPU
and not hasGPU) :
146 ROOT.Warning(
"TMVA_CNN_Classificaton",
"ROOT is not supporting tmva-cpu and tmva-gpu skip using TMVA-DNN and TMVA-CNN")
152 usePyTorchCNN =
False
158 "TMVA_CNN_Classificaton",
159 "TMVA is not build with GPU or CPU multi-thread support. Cannot use TMVA Deep Learning for CNN",
162writeOutputFile =
True
174 print(
"Running in serial mode since ROOT does not support MT")
181 outputFile =
TFile.Open(
"TMVA_CNN_ClassificationOutput.root",
"RECREATE")
206 "TMVA_CNN_Classification",
212 AnalysisType=
"Classification",
213 Transformations=
None,
236inputFileName =
"images_data_16x16.root"
260backgroundWeight = 1.0
286nTrainSig = 0.8 * nEventsSig
287nTrainBkg = 0.8 * nEventsBkg
294 nTrain_Signal=nTrainSig,
295 nTrain_Background=nTrainBkg,
298 NormMode=
"NumEvents",
300 CalcCorrelations=
False,
326 BoostType=
"AdaBoost",
329 BaggedSampleFraction=0.5,
330 SeparationType=
"GiniIndex",
342 "DENSE|100|RELU,BNORM,DENSE|100|RELU,BNORM,DENSE|100|RELU,BNORM,DENSE|100|RELU,DENSE|1|LINEAR"
349 "LearningRate=1e-3,Momentum=0.9,Repetitions=1,"
350 "ConvergenceSteps=5,BatchSize=100,TestRepetitions=1,"
351 "WeightDecay=1e-4,Regularization=None,"
352 "Optimizer=ADAM,DropConfig=0.0+0.0+0.0+0."
354 trainingString1 +=
",MaxEpochs=" + str(max_epochs)
357 dnnMethodName =
"TMVA_DNN_CPU"
363 dnnMethodName =
"TMVA_DNN_GPU"
371 ErrorStrategy=
"CROSSENTROPY",
373 WeightInitialization=
"XAVIER",
375 TrainingStrategy=trainingString1,
376 Architecture=dnnOptions
410 "LearningRate=1e-3,Momentum=0.9,Repetitions=1,"
411 "ConvergenceSteps=5,BatchSize=100,TestRepetitions=1,"
412 "WeightDecay=1e-4,Regularization=None,"
413 "Optimizer=ADAM,DropConfig=0.0+0.0+0.0+0.0"
415 trainingString1 +=
",MaxEpochs=" + str(max_epochs)
418 cnnMethodName =
"TMVA_CNN_CPU"
423 cnnMethodName =
"TMVA_CNN_GPU"
431 ErrorStrategy=
"CROSSENTROPY",
433 WeightInitialization=
"XAVIER",
434 InputLayout=
"1|16|16",
435 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",
436 TrainingStrategy=trainingString1,
437 Architecture=cnnOptions,
445 ROOT.Info(
"TMVA_CNN_Classification",
"Using Convolutional PyTorch Model")
447 pyTorchFileName +=
"/machine_learning/PyTorch_Generate_CNN_Model.py"
454 ROOT.Info(
"TMVA_CNN_Classification",
"Booking PyTorch CNN model")
462 FilenameModel=
"PyTorchModelCNN.pt",
463 FilenameTrainedModel=
"PyTorchTrainedModelCNN.pt",
464 NumEpochs=max_epochs,
466 UserCode=str(pyTorchFileName)
470 "TMVA_CNN_Classification",
471 "PyTorch is not installed or model building file is not existing - skip using PyTorch",
475 ROOT.Info(
"TMVA_CNN_Classification",
"Building convolutional keras model")
488 model.add(Reshape((16, 16, 1), input_shape=(256,)))
489 model.add(
Conv2D(10, kernel_size=(3, 3), kernel_initializer=
"TruncatedNormal", activation=
"relu", padding=
"same"))
490 model.add(
Conv2D(10, kernel_size=(3, 3), kernel_initializer=
"TruncatedNormal", activation=
"relu", padding=
"same"))
497 model.compile(loss=
"binary_crossentropy", optimizer=
Adam(learning_rate=0.001), weighted_metrics=[
"accuracy"])
505 ROOT.Info(
"TMVA_CNN_Classification",
"Booking convolutional keras model")
513 FilenameModel=
"model_cnn.h5",
514 FilenameTrainedModel=
"trained_model_cnn.h5",
515 NumEpochs=max_epochs,
517 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.