如何解析模型代码的调用关系——以“ResNet网络模型的代码运行过程解析”为例

ResNet网络模型的代码运行解析过程

本博客以ResNet50为例子,来解析代码运行的过程与函数解析:
源码:如下
之前一直为代码的复杂调用关系而感到头疼,看完之后虽然在脑子里能回想起来代码的流程,但是过了几天之后,这些典型的深度学习网络模型的代码又就忘记了,为了解决这个问题,我使用思维导图,来整理模型代码的整个流程,得到了很不错的效果,而且整个模型的函数调用也是一目了然!!!下次再看,也能很快想起来。
我是用的是鱼骨思维导图:
效果如下:
如何解析模型代码的调用关系——以“ResNet网络模型的代码运行过程解析”为例
与中间一跟鱼骨相连的骨刺是最先被运行的代码,然后在这个代码中如果有其他函数(可以仅仅记下自己不太了解的其他函数),则记在这个骨刺的分支之上,依次类推。ResNet50模型的调用,如上图所示,可以看出,函数的调用情况一目了然。
而且在每个分支上,也可以进行注释,注释里面就是这个函数的源码。如果想看,直接点击标注即可,效果如下:
如何解析模型代码的调用关系——以“ResNet网络模型的代码运行过程解析”为例
也可以注释上模型的图片:
如何解析模型代码的调用关系——以“ResNet网络模型的代码运行过程解析”为例
当然这个模型的调用关系相对交简单,如果有很对并列关系的主要函数,使用这个思维导图就更能看出效果!