For my graduate research I am creating a neural network that trains to recognize images. I am going much more complex than just taking a grid of RGB values, downsampling, and and sending them to the input of the network, like many examples do. I actually use over 100 independently trained neural networks that detect features, such as lines, shading patterns, etc. Much more like the human eye, and it works really well so far! The problem is I have quite a bit of training data. I show it over 100 examples of what a car looks like. Then 100 examples of what a person looks like. Then over 100 of what a dog looks like, etc. This is quite a bit of training data! Currently I am running at about one week to train the network. This is kind of killing my progress, as I need to adjust and retrain.
I am using Neuroph, as the low-level neural network API. I am running a dual-quadcore machine(16 cores with hyperthreading), so this should be fast. My processor percent is at only 5%. Are there any tricks on Neuroph performance? Or Java performance in general? Suggestions? I am a cognitive psych doctoral student, and I am decent as a programmer, but do not know a great deal about performance programming.
Yeah I went down that road a few months ago. Also for a university project. First problem is Neuroph. Its deadly slow. Neuroph has well know major architectural and performance issues, there was just an article about that last week on code project.
http://www.codeproject.com/KB/recipes/benchmark-neuroph-encog.aspx
I followed a similar path as the author of this article. Switching from Neuroph to Encog is a real easy port. The author of the above article even has another that compares the syntax of Encog, JOONE and Neuroph, so you can compare that. For more info on Encog,
http://www.heatonresearch.com/encog
Encog will take more advantage of your cores too. Just look at the chart in the above article.
Good luck! Your research sounds really awesome, I would love to see the results.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With