深度学习框架的搭建(二)
深度学习框架的搭建(1): https://blog.csdn.net/ustb_liu/article/details/83865866 继续深入考虑之前所述的几个过程,由粗到细: 0、预定义模型及加载:有了loadmodel 和 layer的概念 loadmodel的输入是一个模型文件,结果是建立一个网络,就叫Net吧。那么Net具体都应该包含什么呢?它应该包含各个层layer,以及各layer之间的关系即数据通路,当然要综合考虑前向和后向的数据通路;那么各个层的最终加载结果应该是什么?应该包含超参数的设置,数据的来源,更确切的说是输入数据的首地址以及确定的格式、大小,如果层内部有参数,要确定其数据存储的首地址以及格式、大小,最后是输出数据的首地址、格式、大小。 怎样通过一个模型文件得到这些结果呢? (1)要将模型文件加载到内存; (2)要对模型文件parse,parse的结果是先建立层间关系图即一个出度图即邻接表,然后建立一个入度图即逆邻接表;而其中的各个层本身的信息,需要根据层的不同类型,建立相应的数据结构存储其相应的参数;叫layerparameter类比较合适。 (3)以上的信息都还是比较虚,只能算是设置类/概念类,因为还没有真正的分配内存,所以要根据这些设置类建立真正的实体类。所以要对每一个layer,根据其设置,设置参数,分配内存。比如说一个conv类