Debug Mxnet network in C++


I am trying to figure out if there is a convenient way to debug the Mxnet C++ code that I create. Let say for instance that I create a network, and then I have an error during the SimpleBind operation. Most of the time, it is an inconsistent size of layers. But I didn’t find any better solution than to trace inside the code, try to find my way until I get an error, and then try to figure out why by backtracking the problem… Knowing that I still don’t understand all of the inside code, that gets more complicated with the external libraries, the graph verification and copies, etc.

And then, whenever I have a network, but it doesn’t converge. How to get the data computed after each layer? I mean, both during the forward and backward pass? Can we create some kind of NDArray that get the result of a layer after computation?

These two hints would really help me a lot to understand what kind of mistake I do…


Gotta say, I am happy that I am not the only one to have felt such a need!

I don’t know who was the first to send his message though… But it is close enough to be almost considered as duplicate…

@dmidge I have provided a partial answer on the other thread that you mention here, please follow the discussion there, thanks!

Thank you for this information!
I was actually watching the other thread also, because the topic was closely related to mine.