mlpHiggs.C on older root versions (v4.X) on Mac OSX

i have a problem that could be tested out by someone with a Mac OSX.

i am simply trying to run the supplied example without any modification.

mlpHiggs.C example does not read in the root data correctly (i can see the two trees and they have data points but i get the following error)

root [0] .L mlpHiggs.C
root [1] mlpHiggs()
Info in TMultiLayerPerceptron::Train: Using 1 train and 1 test
Training the Neural Network
Epoch: 0 learn=2.87811e-05 test=0.203979
Error in TMultiLayerPerceptron::TMultiLayerPerceptron::Train():
Line search fail
Epoch: 100 learn=0 test=0.204008
Training done.
Network with structure: msumf,ptsumf,acolin:5:3:type
inputs with low values in the differences plot may not be needed
msumf -> 0.000946217 +/- 5.23261e-12
ptsumf -> 0.000476602 +/- 2.18721e-12
acolin -> 0.000178712 +/- 1.21813e-12

i understand from christophe (the author of mlpHiggs.C) that this just means that it’s not reading in the file correctly.

i have downloaded several newer ROOT (any of the 5.X) versions and mlpHiggs.C’s there work beautifully.

the reason i have to insist on using ROOT 4.04 is a deep rooted one to do with compilers and some external libraries i need to load onto it.

i also downloaded some binary versions of root to that remi has for mac os to test out that it’s not just me and my compiler, and mlpHiggs.C in root 4.X binaries still doesn’t work (i have root_v04.02.Darwin.7.9.0 and root_v4.03.04.Darwin.7.8.0) but the later ones do.

has anyone got an idea why?
thank you very much for your help

The only difference that I see between the version 4.04 and 5.16 of mlpHiggs.C is

< TMultiLayerPerceptron *mlp = new TMultiLayerPerceptron(“msumf,ptsumf,acolin:5:3:type”,

TMultiLayerPerceptron *mlp = new TMultiLayerPerceptron(“@msumf,@ptsumf,@acolin:5:3:type”,[/code]

ie that in version 5.16 the input variables are normalized (“@”).
It could be that on some machines (are you running on an old mac/ppc?)
rounding effects could have been important.


thank you for your reply,
i had actually tried to run the new macro from version 5.16 on the old root as well and it was the same error.