Reputation: 945
I have developed a neural network program and it has been running from a week.I want to check the progress of the java program because terminating the program if the program is too close of completion would be painful.Is there any concept as such?
Upvotes: 0
Views: 1759
Reputation: 1830
Oh noo! One week learning.... Definitely you could print out some status next time (once per hour?).If by progress you mean learning process I would go for network output test verification with some period. I would show how the current outputs differ from desired one. This will be your error. Normally this error is smaller, and smaller with learning (if network doesn't go in to some strange oscillation). This would be your learning curve. If there is no big change (deltas) in error from period to period I would stop the learning.
Just minor point. You could check the VisualVM tool ( http://visualvm.java.net/ ). It basically connects to your application and you can see couple of information. This is more like profiler, but at least you can see if your current run application is alive.
Upvotes: 0
Reputation: 4901
If your application has not built-in progress reporting then not much can be done. You can take a thread dump to check what it is actually doing.
Upvotes: 1
Reputation: 75
Here are some tips.
you can use some java tool such as jstat to monitor the JVM's GC, or jstack to see the jvm's Thread.
it's not 100% accurate but its a alternation.
Upvotes: 1
Reputation: 1769
Well, what do you call "progress" ? There is no general "progress" definition. This is specific to your algo. You have to define a metric for that. Maybe it's the number of files your are creating, processing, whatever... Maybe the number of iterations (if you know that the program will end after a fixed number of iteration). Basically, you have to know when the program stops, and how to evaluate the distance to this point.
Then you can just print regularly the value of this metric to know the progress.
Upvotes: 4