Min/Max weights values after a successful TMVA classifier training are all +-3.40282347e+38?

I’m using a CNN with PyKeras as a classifier to separate signal/background events, and I’m getting very good results after training based on my ROC curve and Training+Testing Response plot. However, when I look at the weight file (the .xml file after training is complete), its showing ±3.40282347e+38 for Min and Max values for all my variables, which I know are the values represented by a 32-bit float number. So what went wrong with the saved weights?

Here’s more details on my CNN model: I’ve slighlty edited the TMVA_CNN_Classification.py file in the TMVA tutorials for my particular input. My input has 360 variables as 20 X 18 X 1 image. The input variables are energy deposition values, which is a typical HEP image classifier problem. The signal events used for training are clean, single tracks, while the background events are multiple intersecting/heavy interaction tracks. Most of the values will be zeros, but there will be variables with non-zero values that represent the reconstructed energy deposition in the image. The results show a strong separation and I was very happy with the results, so I’m confused as to why the weights look that way.

Ok, so I just ran the example TMVA_CNN_Classification.py code which generates example 16x16 images, and booked all the methods (PyTorch, PyKeras, TMVA, BDT). All the min/max values show ±±3.40282347e+38 with the example CNN, so is this normal for these types of Neural Networks? Are these even the min/max weight values? Thank you so much for any help.

I think I answered my own question, I don’t think these are the Min/Max weight values. The values are placeholders or initial values that TMVA might use before the actual min/max of the variable are calculated from the data. They should be updated during the preprocessing stage when TMVA goes through the data to find the actual min and max. Am I correct here? I guess I misinterpreted it.

yes this is correct, the min/max refers to the input variables and not the weights. Using some options you can have TMVA computed during training these values. In your case, teh computation is not done and therefore default min/max (equal to min/max of floating point numbers) are used


1 Like