Extensibility of training listeners

Hi there

I’m using DL4J in an application with a customized UI. For performance monitoring I use the training listeners, e.g. the performance listener. My idea was to extend the listener and further process the metrics, i.e. reporting it to a server. However, I ran into the problem, that the listener does only report the performance as log outputs, but I am actually interested in the values itself. Unfortunately, those values are all private and do not provide any getters or export functionality.

Would it be possible to open the training listeners to make the a little more extendable, or should listeners in no way be extended to add further functionality?

At the moment I can “copy” the code and adapt it to what I need, but this is often not a good approach concerning further releases.

Thank you very much for your answer.


The performance listener has been more of a debug tool for us so far.

But on the other hand, I can see it being useful to decouple the collections of performance statistics and its output, as we could display them in other places as well this way.

@raver119, @AlexBlack any thoughts on this?

I’ve very similar use cases - reading the values of what’s basically reported by the listeners, e.g. PerformanceListener. So here’s my +1