The only problem left is the validation set!
I want to train my network using all the 60K training events, without validation error check.
And test my network after all the training epochs end, using 10K testing events.
However, my TMVA automatically splits my training events into 48K training set and 12K validation set.
How can I deal with this problem?
Is there any option to set the validation fraction, so that I can give more the training event number?
There was, for TMlpANN, but not for DNN, according to the Users Guide…
You can use the option ValidationSize=value when booking the DL Method, where the value can be the absolute number of validation events or the fraction. Unfortunately you cannot give a zero value, you can use as minimum number the batch size.
But, let me understand, would you like to train using all training data and stop the training given just the number of epoch for example and not using the validation error, correct ? Or would you like to use the testing data as validation data ?
The Xavier’s code in the above link is using all 60K training data, and stop the training given just the number of epoch.
As practice, I just wanted to mimic that code.
Now, with ValidationSize=1 (so that it trains with 59,999 samples), my code gives exactly the same result with Xavier’s code!
And I can adjust the validation sample number!
Thank you!
Best regards
Seungmok Lee
p.s.
My BatchSize=128, but ValidationSize=1 works. I’m not sure it can give an error someday… Anyway, I’m happy right now.
And where can I find all of the available options? I can not find it in the Users Guide. How do you know that…?
Hi,
I am glad it works, however normally, if you are using the new MethodDL implementation or PyMVA, you should get a FATAL error when the validation size is less that the batch size.
I will probably relax then this condition and make the training working also in that case.
It is true not all options are documented in the Users Guide. We will try to improve on this and at list add all possible options in the example tutorial TMVAClassification.C
For a full list you can always check the code in the DeclareOptions() function of the method class, see for example https://root.cern.ch/doc/master/MethodDL_8cxx_source.html#l00161