Read and respond to this message at:
https://sourceforge.net/forum/message.php?msg_id=4946394
By: mokhov
Hi Silvio,
Thanks for your report. Here are some points I can offer now in the
reply:
First, our Neural Network (NN) is known not to behave well (i.e. run
with the default settings and large number of features on the
input layer. The "large" varies around 300+ features. FFT and Aggregator
produce 512 and 522 features respectively (thereby the input layer
will have as many neurons). We even explicitly avoid those configurations
in our default training script (testing.sh/testing.bat):
...
# XXX: We cannot cope gracefully right now with these combinations in the
# typical PC/JVM set up --- too many links in the fully-connected NNet,
# so can run out of memory quite often; hence, skip them for now.
if("$class" == "-nn" && ("$feat" == "-fft" || "$feat" == "-randfe" || "$feat"
== "-aggr")) then
echo "skipping..."
continue
endif
...
The NN has three layers by default dynamically created as follows:
The number if input layer neurons always equals to the number of incoming
features f (the length of the feaure vector), and the size h of the middle
hidden layer is h = |f - n|; if f = n, then h = f/2. By default, the network
is _fully-interconnected_. (n is currently 32 corresponding to a 32-bit
integer).
Thus, with -aggr -nn you get 522 * (522 - 32) * 32 = 8184960 links between
neurons that have to stored and traversed. This is where it would run out
of memory with the default JVM memory limits and availability of the physical
memory.
Why is that so? Well, the NN research is very vast and people have different
ideas of the NN interconnectivity, activation functions, how many hidden
layers there should be and what is their size, etc. -- it requires a lot of
theory and experimentation to be examined, we did not have a lot of man
power to do so for NN. You are welcome to volunteer though ;-)
You can still get it run and not to run out of memory (through it still will
be slow) by increasing the amount of memory JVM is allowed to use, e.g.
java -Xmx2048m ... SpeakerIdentApp ...
The stack overflow exception you quote above is a new beast I will
have to look into to see why the recursion is there, it may be a
"newly" introduced bug.
You can also try -nn with other than -aggr or -fft (or reduce the number
of features -aggr and -fft produce to around 100).
I have not managed to release another CVS snapshot even though there were
numerous fixes since the last snapshot release, would you mind trying
the following .jar? It has debug symbols included, so we would see the
source code line numbers instead of "Unknown Source"...
http://users.encs.concordia.ca/~mokhov/marf/
Thanks again and looking forward to hearing from you soon,
-s
______________________________________________________________________
You are receiving this email because you elected to monitor this forum.
To stop monitoring this forum, login to SourceForge.net and visit:
https://sourceforge.net/forum/unmonitor.php?forum_id=213051
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
marf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/marf-devel