I'm working with a network of a little less than couple hundred nodes, all of them discrete CPTs, and in my code I need to compute probabilities of the form P(X|Y) many times where Y isn't always a parent of X.
I do this by doing
Code: Select all
net.clearAllEvidence();
net.clearAllTargets();
net.setEvidence( contrast, tval );
net.setTarget( child, true );
net.updateBeliefs();
p[tval] = net.getNodeValue( child )[cval];
Sooner or later I end up getting
Code: Select all
SMILE error -42 in function UpdateBeliefs
Is there anything else I can do to reduce the amount of memory needed by SMILE?
Is something getting accumulated in memory from making these calls a lot that I could clear?
Is there any way to force SMILE to use more memory, or force the JVM to give SMILE more memory?
How does SMILE determine that it is out of memory to trigger error -42?