Do researchers of deep learning understand the existing codes in detail?
Do researchers in deep learning understand the existing codes in detail? Or they just use the code as a module to execute?

A little bit of both. Some thoughts:

I only look at the code on a tiny fraction of the papers that I read. Most of the papers explain their &quot;idea&quot; well enough and have results on standardized tasks. So, there is no need to look at the code unless:

I cannot understand exactly what the &quot;idea&quot; is (and I am sufficiently motivated to continue trying to figure it out), or
I want to implement the idea myself.


In general, most of the codebase is the skeleton for ETL (extract, transform, and load), training, validation, tensorboard, etc. I ignore this. Instead, I look for the small part of the codebase where the new idea is implemented, and I study that in detail. Even if I want to run the code, I will generally add their new idea into one of my existing codebases, rather than running their entire codebase off-the-shelf.

Of course, new students will have different needs than more experienced people. After you've seen enough codebases, you can quickly distinguish between &quot;the usual stuff&quot; and &quot;hmm, why did they do that?&quot; When you are just starting out, everything will look unfamiliar, and you may need to go much more slowly to understand the different pieces. This is the same as any other discipline, really.

An added complication is that these papers come in a wide variety of languages. Recently, research papers have been converging on PyTorch, which I am very happy to see. But this is another difference: students generally get stuck on the software details of each language (which is reasonable, since their software engineering skills are less developed), while experts will only care about the underlying math.